We initially divided the project into user stories and backlog items, then selected high-priority tasks for each sprint during sprint planning. The Sprint Burndown Chart below shows how we started with over 50 tasks, then slowly managed to complete them on time according to our ideal burndown line.
Our Wrappify Component Diagram provides a high-level view of the structure and component interactions of the project:
User Interface (Frontend): This is the part of the application the user interacts with directly. It consists of HTML, CSS, and JavaScript files that display the content, take input, and communicate with the backend.
Django Server (Backend): This is the core of your Django project, responsible for processing user requests, interacting with the database, and rendering HTML responses or providing data to the frontend via APIs. Django views, URLs, models, and templates work together to handle client requests.
Spotify Web API: This is the external service your backend communicates with to interact with Spotify’s platform. It provides access to Spotify data like user playlists, tracks, artists, etc. The backend makes requests to Spotify Web API to fetch or update user data.
Database (Models): This component stores all the necessary user data, including authentication information as well as user specific elements such as the wraps library. The database supports the application's functions by storing data such as user profiles, saved wraps, and wrap library history.
Spotify: This directory contains the majority of the code for your application. It includes:
Static Files: HTML, CSS, and JavaScript used by the frontend.
Views and Templates: Django views that render the frontend and templates to dynamically generate HTML pages.
Models: The Django models that represent the database structure.
Forms: Django forms to handle user input
Spotify Wrapped: This directory contains the configuration files and admin interfaces
settings.py: Configuration for the Django project, including database setup, installed apps, middleware, and external API settings (e.g., Spotify API credentials).
admin.py: A module where you define how models should be displayed and managed in the Django admin interface.
Trello for Sprint Management:
We used Trello as a Kanban board to manage and track tasks throughout the development of our Wrappify project. The board was divided into key columns: Product Backlog, Sprint 1, 2, 3 Backlogs, In Progress, Completed, and Final Tasks. Tasks were represented as cards and moved across the board as they progressed.
To Do: Tasks related to both sprint-specific backlogs and product backlog were created, ensuring all major features like handling the Spotify Web API and working on specific user pages were organized and prioritized.
In Progress: Cards in this column represented tasks actively being worked on, such as fixing scrolling issues, writing reviews, and adding the ability to save wraps.
Completed: Once tasks were completed they were moved here to track overall progress and maintain project transparency.
Using Trello allowed our team to visualize the workflow, ensuring clear communication and efficient collaboration, while keeping track of what was in progress and what had been accomplished.
Our team met during class on Mondays and Wednesdays to collaborate on key features of the Wrappify project. These sessions allowed us to focus on implementing and testing new functionalities, like wrap functionalities, dynamic UI changes, and database management. During class time, we also conducted informal stand-ups, discussing blockers and progress.
As each sprint concluded, we reviewed completed tasks and planned for the next sprint. We prioritized new features, such as improving UI responsiveness, integrating more API data, and refining the review system. We set achievable goals for the upcoming sprint, ensuring all members had a clear understanding of their roles, fostering continuous progress throughout the project.