Sprint 2 Documentation - aboden267/ctrl-alt-elite GitHub Wiki
Goals / Tasks
| Task | Assigned To | Story Points | Status |
|---|---|---|---|
| Add default visibility to each Google Calendar | Yutian | 3 | In Progress |
| Add visibility to each Event | Yutian | 2 | In Progress |
| Allow admins to override event visibility | Bill | 4 | Briefly Looked At |
| Filter private events from guests | Aden | 3 | Not Started |
| Verify Flutter event behavior | Bill | 3 | In Progress |
| Add tests | Aden, Yutian, Bill | 2 | In Progress |
Testing / Coverage
Django
Coverage Report:
The existing Django automated test suite was run using Coverage.py.
- 68 tests discovered
- 68 tests passed
- 0 failures
- Overall code coverage: 61%
- Total statements: 3,631
- Missing statements: 1,398
Tests Added:
No new automated tests were added by our team during this sprint.
Test Results:
All 68 existing Django tests completed successfully in 0.644 seconds with no failures or errors.
Flutter
Test Results:
- 17 automated tests were run.
- All 17 tests passed successfully.
- 0 test failures occurred.
- Total test time was approximately 1 minute and 14 seconds.
The Flutter test suite was run using:
flutter test --coverage
Coverage Report:
The test run generated Flutter coverage data in coverage/lcov.info.
Work Accomplished
Bill
-
Set up Flutter Development Environment
- Installed and configured the Flutter SDK and Visual Studio tools.
- Installed required C++ development components, including MSVC and CMake.
- Configured VS Code for Flutter development.
-
Troubleshot Flutter Build Issues
- Investigated CMake compiler detection errors.
- Resolved a conflict involving D language tools and MSBuild.
- Fixed a missing C++ ATL dependency.
- Researched Firebase-related issues in the Windows development environment.
-
Successfully Launched Flutter Application
- Built and ran the Arts & Culture application in the Windows environment.
- Identified runtime issues and verified that some platform-specific implementation was missing.
-
Researched Mobile Testing and Deployment
- Reviewed the project in preparation for iOS development.
- Investigated how to test an iOS Flutter application from a Windows environment.
- Identified the development workflow.
Yutian
-
Set Up Django Development Environment
- Set up the Django project in WSL Ubuntu.
- Installed Python packages and created a virtual environment.
- Configured VS Code for Django development and connected it to WSL.
-
Fixed Django Development Issues
- Fixed database connection problems.
- Set up SQLite and ran database migrations.
- Fixed missing database tables by creating the cache table.
- Fixed missing images and CSS by updating the local development settings.
-
Successfully Ran and Tested Django Website
- Successfully launched the Arts & Culture website.
- Tested the homepage and calendar.
- Added test events to the database and confirmed that they appeared on the calendar.
-
Worked on Google Calendar Visibility Settings
- Added public/private settings to Google Calendars.
- Added the
default_is_publicfield. - Added visibility settings to individual events.
- Added the
is_publicfield. - Updated Google Calendar import behavior so new events use the source calendar's default visibility.
- Preserved existing event visibility settings during later updates.
Aden
-
Planned and Organized Sprint Work
- Reviewed the Django and Flutter codebases to identify the files involved in the calendar visibility feature.
- Broke the feature into implementation tasks and assigned responsibilities to team members.
- Organized the Sprint 2 documentation structure and created the team repository and Wiki.
-
Set Up Local Django Development Environment
- Installed and configured Python 3.12 and Pipenv.
- Initialized the infrastructure Git submodule.
- Created local environment configuration files for development.
- Configured Django to run locally using the test database environment.
- Applied database migrations and successfully launched the Django development server.
-
Ran Django Testing and Coverage
- Ran the existing Django automated test suite.
- Confirmed that all 68 existing tests passed successfully.
- Generated a Django code coverage report using Coverage.py.
- Recorded an overall coverage result of 61%.
- Generated the HTML coverage report for documentation.
-
Maintained Sprint Documentation
- Collected progress, time logs, and reflections from team members.
- Structured the Wiki sections for goals/tasks, testing, work accomplished, time logs, reflections, and sprint analysis.
- Prepared supporting documentation for the team's feature work and sprint submission.
Individual Time Logs
Aden Time Log
| Date | Time | Activity / Task | Total Time Spent |
|---|---|---|---|
| 9/29/26 | 1 hr 15 min | Class lecture | |
| 10/1/26 | 1 hr 15 min | Workday: Discussed and decided what our team should work on. Reviewed Django and Flutter files to become familiar with how calendar events are handled and which files are involved. | |
| 10/5/26 | 1 hr 15 min | Class lecture | |
| 10/8/26 | 3 hr | Workday/Individual: Created an initial task list for the selected feature, identified the main files involved, and began creating the team Sprint wiki/documentation. | |
| 10/9/26 | 6 hr | Individual: Continued structuring the Sprint documentation rough draft, expanded the task list into more detailed implementation steps, and assigned tasks to each team member. | |
| 10/10/26 | 5 hr | Individual: Created and organized the Sprint 2 repository and Wiki, transferred and cleaned up team documentation, set up the Django development environment, configured local environment settings and database migrations, successfully ran the Django application, ran the existing automated test suite, and generated the Django coverage report. | 17 hr 45 min |
Yutian Time Log
| Date | Time | Activity / Task | Total Time Spent |
|---|---|---|---|
| 9/29/26 | 1 hr 15 min | Class lecture | |
| 10/1/26 | 1 hr 15 min | Workday: Discussed the calendar visibility feature with the team and reviewed the Django project. | |
| 10/3/26 | 4 hr | Individual: Set up the Django development environment using WSL, VS Code, and Docker. Installed the required Python packages. | |
| 10/6/26 | 1 hr 15 min | Class lecture | |
| 10/8/26 | 1 hr 15 min | Workday: Reviewed the document created by Aden and reviewed the provided instructions in Canvas. | |
| 10/9/26 | 2 hr | Individual: Fixed database connection problems and configured SQLite for local testing. | |
| 10/10/26 | 5 hr | Individual: Fixed missing images and CSS. Successfully ran the Arts & Culture website and tested the calendar with sample events. Also worked on Google Calendar visibility settings, added public/private fields, and updated the event import logic to preserve visibility settings. | 16 hr |
Bill Time Log
| Date | Time | Activity / Task | Total Time Spent |
|---|---|---|---|
| 9/29/26 | 1 hr 15 min | Class lecture | |
| 10/1/26 | 1 hr 15 min | Workday: Reviewed code for Flutter development, became familiar with the file structure, selected a task from the TODO list, and began downloading the dependencies needed to build the project. | |
| 10/3/26 | 2 hr | Individual: Reviewed the first sprint and instructor feedback and began reviewing the instructions for the second sprint. | |
| 10/6/26 | 1 hr 15 min | Class lecture | |
| 10/8/26 | 1 hr 15 min | Workday: Began setting up the project environment and updated Visual Studio after the older version failed to build the project. | |
| 10/8/26 | 2 hr | Individual: Continued setting up the Windows-specific development environment and worked on getting the project to run. | |
| 10/9/26 | 3 hr | Individual: Debugged the project and investigated why the calendar was not displaying events. | |
| 10/10/26 | 6 hr | Individual: Completed the Windows environment setup and identified missing platform-specific implementations. Began researching and preparing for iOS development. | 18 hr |
Individual Reflections
Aden
Connect
I would say a huge portion of this sprint was project management and documentation. Thankfully, during my time at BJU, I have worked a lot with documentation and large projects. This is the first project where I am a leader, and I had to really step up and take the lead, creating a 10-page document full of scope, tasks, logs, and other sections so our team could stay organized and know what to work on and what to do. I have learned new skills in project management, especially how to assign tasks and take things one step at a time because it can be overwhelming, especially with the scope of this project.
Inspect
I would like to think I effectively contributed to this project during the second sprint. Although I did not edit much code, I focused much more on the project management side and created a clear path for my team to be successful. I created a TODO section with nearly every single change that will be needed to complete this task. I think, to better apply course principles, we can focus on writing some tests during the next sprint, as we did a whole lot of recon, understanding, and scoping out during this one. One thing that surprised me was how much time this took. The sprint documentation alone took me over 10 hours in total to put together.
Adapt
To improve effectiveness, I would like to spend more time working with my teammates in person. Now that we have a written plan with defined tasks, we will be able to work much more efficiently. I would also say that we can check in with each other more often and see where everyone is at sooner. To help my teammates be more effective, I can check in on them and let them know when I make changes.
Yutian
Connect
During this sprint, I encountered several problems while setting up the Django development environment. I applied some knowledge from my previous programming classes, especially working with Python, databases, and debugging. My experience with Linux also helped me understand how to use WSL and fix problems in the development environment. Also, I connected this project with my experience of working in the Annex Office, which helped me to understand the structure of this project more quickly.
Inspect
I believe I made good progress during this sprint. I successfully set up the Django development environment and ran the Arts & Culture website locally. I also fixed several problems related to database connections, missing tables, and static files. After that, I started working on the Google Calendar visibility feature by adding public and private settings to calendars and events.
However, I spent more time than expected setting up the environment and troubleshooting errors. I could have been more efficient if I had asked my teammates for help earlier instead of trying to figure out every problem myself.
What surprised me most was how many different tools and configurations were needed to run the Django project. Even before starting the actual feature, I had to spend a lot of time making sure the development environment worked correctly.
Adapt
In the next sprint, I want to improve my effectiveness by reading the project documentation more carefully and understanding the code before making changes. I also want to communicate with my teammates more often when I encounter problems. Once we all get familiar with the structure of this project, I believe that we will work much more efficiently than before.
To help my team work more effectively, I can share what I learned about setting up Django and fixing common errors. I also want to test my code more carefully and make sure my changes work correctly before submitting them.
Bill
Connect
During this sprint, I encountered several problems and applied several software engineering principles from class. I learned a lot from the cps 210 class about CMake rules and such. After taking that class, I had a better understanding for C language and that helped me to debug the error occurred during compile time.
Also, I learned how important it is to read the instructions carefully and understand the project as a whole before starting any work. This can help me avoid unnecessary problems and save time. For example, I spent a lot of time trying to run the Flutter application on Windows before realizing that the project was designed specifically for Android and iOS.
Inspect
I believe I have made some progress in this sprint. In this sprint, I successfully installed and set up the Flutter environment and successfully launched the application on Windows. However, I also spent a lot of time on the features that we are not likely interested in.
I could apply course principles better if I asked other team members earlier. Instead of spending too much time trying to solve everything by myself, I should communicate with my teammates and learn from their experience.
What surprised me is the complexity of this project. It requires a lot of time just to install all necessary dependencies to get the project to run.
Adapt
I could improve my effectiveness by carefully reading through the instructions and communicating with classmates early. I could help my teammates be more effective by mutual supervision and clear task distribution.
Sprint Analysis
Throughput:
0 story points were completed during this sprint. Although progress was made on several tasks, none of the assigned tasks were fully completed by the end of the sprint. Much of this sprint was spent setting up development environments, understanding the project structure, troubleshooting issues, and planning the implementation of the calendar visibility feature.
Stability:
0 bugs were introduced during this sprint. No completed feature changes were pushed during the sprint, so there are currently no introduced bugs to track.
Velocity Projection:
We estimate that we will complete approximately 6 story points during the next sprint. Now that the team has working development environments, a defined task list, and a better understanding of the project, we expect to spend significantly more time completing implementation tasks during the next sprint.
Corrections:
Not applicable for this sprint. This was the first collective sprint for our team, so there was no previous sprint feedback from the professor to address.
Additional Documentation
See Additional Documentation for detailed planning notes, feature scope, files involved, and the full TODO.