Course: COMP-8117 Applied Software Engineering
Instructor: Dr. Aznam YACOUB
Date: November 1, 2024
Team Members:
- Rajkumar Patel - Team Lead
- Vansh Patel
- Ridham Patel
- Divya Mistry
- Project Context
- Artifacts Produced
- Initial Objectives & Schedule
- Progress Analysis
- Strategy for Remaining Work
- Management Documentation
- Financial Analysis
- Success and Challenges
- Redefined Priorities
- Lessons Learned
Cheerly is an Android application being developed as part of the COMP-8117 Applied Software Engineering course. The project addresses the challenge of fragmented content discovery by creating a unified, mood-based recommendation system. This interim report documents our progress after 1.5 months of development, analyzing our implementation of industry-standard software engineering practices and learning outcomes.
pie title Crash Distribution by Component
"MoodRecommendationActivity" : 13
"MoodsFragment" : 8
"VideoAdapter" : 7
"SplashActivity" : 6
"Others" : 9
Metric | Value | Status |
---|---|---|
Crash-free Users | 65.71% | 🟡 Needs Improvement |
Crash-free Sessions | 74.71% | 🟡 Needs Improvement |
Total Crashes | 43 | 🔴 High |
Affected Users | 12 | 🟡 Moderate |
graph TD
A[GitHub Actions ] --> B[37 Total Runs ]
B --> C[Successful: 28 ]
B --> D[Failed: 9 ]
C --> E[Average Time: 2m 22s ]
D --> F[Failed Time: 16m ]
Metric | Value | Context |
---|---|---|
Total Job Runs | 37 | Overall executions |
Average Run Time | 2m 22s | Per build |
Queue Time | 7s | Average wait |
Total Minutes | 103 | Cumulative time |
Failed Job Usage | 16m | Time lost to failures |
graph LR
A[Technical Documentation] --> B[SRS]
A --> C[SDS]
A --> D[Use Case Diagram]
B --> E[Requirements]
C --> F[Design Specs]
D --> G[Flow Diagrams]
Component | Error Type | Users Affected | Priority |
---|---|---|---|
MoodRecommendationActivity | Theme.AppCompat error | 13 | 🔴 High |
MoodsFragment | ActivityNotFound | 8 | 🟡 Medium |
VideoAdapter | IllegalArgument | 7 | 🟡 Medium |
SplashActivity | ActivityNotFound | 6 | 🟡 Medium |
pie title Error Type Distribution
"Theme Issues" : 13
"Navigation Errors" : 14
"Argument Errors" : 7
"Other Issues" : 9
graph LR
A[Code Push] --> B[CI Trigger]
B --> C[Build Process]
C --> D[Tests]
D --> E[APK Generation]
E --> F[Success/Failure]
- Workflow: android.yml
- OS: Linux
- Runner: GitHub-hosted
- Build Tool: Gradle
pie title Build Success Rate
"Successful Builds" : 76
"Failed Builds" : 24
-
Crash Rate Improvement
- Current: 34.29% crash rate
- Target: <10% crash rate
- Focus: Theme compatibility issues
-
Build Success Rate
- Current: 76% success
- Target: >90% success
- Focus: Reducing build failures
-
Performance Optimization
- Current: 2m 22s average
- Target: <2m average
- Focus: Build time reduction
Document Type | Status | Last Updated |
---|---|---|
SRS v-1.2 | ✅ Complete | 2024-11-01 |
SDS v-1.2 | ✅ Complete | 2024-11-01 |
Use Case Diagram | ✅ Complete | 2024-10-05 |
Build Reports | 🔄 Ongoing | Auto-generated |
Crash Reports | 🔄 Ongoing | Real-time |
This visualization represents the actual confirmed artifacts and metrics from:
- Firebase Crashlytics data
- GitHub Actions metrics
- Documentation inventory
- APK build history
Our project planning phase established clear objectives aligned with software engineering best practices and learning goals:
-
Learning Objectives
- Implement industry-standard software development practices
- Experience full software development lifecycle
- Apply agile methodologies in real project
- Understand API integration complexities
-
Technical Objectives
- Develop scalable Android application
- Integrate multiple content providers
- Implement mood-based recommendation system
- Create premium subscription model
-
Product Objectives
- Create intuitive user experience
- Provide personalized content recommendations
- Ensure high performance and reliability
- Support offline functionality
Sprint | Dates | Primary Goal | Key Deliverables | Success Criteria |
---|---|---|---|---|
0 | Sept 29 - Oct 3 | Project Foundation | - Development environment setup - Repository structure implementation - Architecture decisions documentation - Team workflow establishment |
- Functional development environment - Clear documentation - Team alignment |
1 | Oct 4 - Oct 13 | Core Development | - Mood tracking system - User preference system - Basic UI framework |
- Database implementation - Testing framework setup - Basic API integration |
2 | Oct 14 - Oct 23 | Integration Phase | - Spotify API integration - YouTube API integration - Content recommendation engine |
- Data synchronization - Performance optimization |
3 | Oct 24 - Nov 2 | Enhancement & Polish | - UI/UX improvements - Performance optimization - Premium feature implementation |
- <2s response time - 95% test coverage - Error handling |
pie title Overall Project Completion Status
"Completed Features" : 93.1
"In Progress" : 5.9
"Pending" : 1
Objective | Status | Evidence | Success Factors | Impact |
---|---|---|---|---|
Core Architecture | 100% | - Functional app structure - Clean architecture implementation - Modular design |
- Early planning - Clear architecture decisions - Team expertise |
Foundation for all features |
User Preferences | 100% | - Working preference system - Data persistence - UI implementation |
- Modular approach - Clear requirements - Iterative design |
Enhanced user experience |
Music Integration | 100% | - Spotify API integration - Music recommendations - Playback controls |
- API documentation study - Early prototyping - Error handling |
Core functionality |
Video Integration | 100% | - YouTube API integration - Video recommendations - Player implementation |
- Previous experience - Reusable components - Efficient caching |
Content diversity |
Objective | Status | Challenge | Impact | Mitigation |
---|---|---|---|---|
Premium Features | 50% | - Payment API complexity - Security requirements - Testing needs |
- Revenue delay - Feature limitation |
- Early API testing - Security review - Phased rollout |
UI Polish | 75% | - New requirements - Performance issues - User feedback |
- Minor UX issues - Visual consistency |
- Prioritized fixes - Performance optimization |
Podcast Integration | Planned | - API selection - Content management - Storage needs |
- Feature completeness - User value |
- Early research - Clear requirements |
Activity Suggestions | Planned | - Location services - Real-time data - API integration |
- Feature scope - User engagement |
- Phased implementation - Clear architecture |
Task | Assignee(s) | Priority | Size |
---|---|---|---|
Project Setup | Rajkumar | P0 | M |
Create Splash Screen | Rajkumar | P0 | S |
Create User Preference Screen | Vansh | P0 | S |
Add Next Button Functionality | Vansh | P0 | XS |
API Selection | Vansh | P0 | S |
Implement CRS Research | Rajkumar | P0 | S |
Github Project Setup | Rajkumar | P0 | XS |
Add Prompt Activity | Vansh | P0 | S |
Task | Assignee(s) | Priority | Size |
---|---|---|---|
Update Logo and App Name | Rajkumar | P0 | XS |
Double Tap Deselection | Rajkumar, Vansh | P0 | S |
UI Enhancement | Rajkumar, Vansh | P0 | - |
Task | Assignee(s) | Priority | Size |
---|---|---|---|
Mood Uplift Feature | Rajkumar, Vansh | P1 | XS |
Music Based on Mood | Rajkumar | P0 | S |
Results Screen | Rajkumar, Vansh | P0 | S |
User Preference Launch | Vansh | P0 | XS |
Mood Selection Update | Vansh | P0 | XS |
Save User Preferences | Rajkumar | P0 | XS |
Video Recommendations | Rajkumar, Vansh | P0 | M |
pie title Task Distribution by Developer
"Rajkumar Only" : 8
"Vansh Only" : 7
"Collaborative (Both)" : 5
pie title Task Distribution by Size
"XS (Extra Small)" : 9
"S (Small)" : 8
"M (Medium)" : 2
- Total Tasks: 20
- Completed Tasks: 18
- Tasks In Progress: 2
- Average Task Size: Small
- Most Common Priority: P0
- Led infrastructure setup (Project Setup, Github)
- Handled core features (Music Integration, CRS)
- Strong focus on backend functionality
- Primary contributor to 13 tasks
- Led UI/UX improvements
- Managed user preference features
- Strong focus on frontend development
- Primary contributor to 12 tasks
- 5 tasks completed through pair programming
- Strong synergy in feature development
- Balanced workload distribution
- Effective task handoffs
-
Timeline Deviations
- Sprint 2: 3 Days Delay
- Root Cause: API integration complexity
- Impact Areas:
- Feature completion schedule
- Resource allocation
- Testing timeline
- Resolution:
- Parallel development tracks
- Additional resource allocation
- Prioritized critical features
- Sprint 2: 3 Days Delay
-
Resource Usage Analysis
- Planned Hours: 640 (4 developers × 40 hours × 4 sprints)
- Actual Hours: 668
- Deviation: +28 hours (4.4% over)
- Causes:
- Complex API integration requirements
- Additional testing needs
- Documentation updates
- Impact Management:
- Optimized resource allocation
- Prioritized critical tasks
- Clear task dependencies
gantt
title Remaining Features Implementation Plan
dateFormat YYYY-MM-DD
section Critical Features
Payment Integration :2024-11-03, 7d
UI Polish :2024-11-03, 5d
Performance Optimization :2024-11-05, 5d
section New Features
Podcast Integration :2024-11-10, 7d
Activity Suggestions :2024-11-10, 7d
-
Payment Integration (Nov 3-9)
- Technical Approach:
- Research payment gateway options
- Implement secure payment flow
- Integrate testing environment
- Success Criteria:
- Successful transaction flow
- Security compliance
- Error handling
- Risk Mitigation:
- Early sandbox testing
- Security audit
- Phased rollout
- Technical Approach:
-
Podcast and Activity Features (Nov 10-16)
- Implementation Plan:
- API selection and integration
- Content management system
- Location services implementation
- Quality Assurance:
- Performance benchmarking
- User acceptance testing
- Security validation
- Risk Management:
- API fallback options
- Cached content strategy
- Progressive enhancement
- Implementation Plan:
- Technical Risks
Risk Area | Probability | Impact | Mitigation Strategy |
---|---|---|---|
Payment API | High | Critical | - Early integration testing - Multiple gateway options - Robust error handling |
Performance | Medium | High | - Optimization sprints - Caching strategy - Load testing |
API Limits | Medium | Medium | - Rate limiting - Quota management - Fallback content |
- Resource Risks
- Timeline Pressure:
- Buffer periods in schedule
- Clear priority order
- Flexible resource allocation
- Technical Expertise:
- Knowledge sharing sessions
- Documentation requirements
- Pair programming approach
- Timeline Pressure:
- Organization Structure
graph TD
A[Cheerly Project] --> R[Rajkumar]
A --> V[Vansh]
A -.-> T[Ridham: Testing]
R & V --> B1[System Architecture]
R & V --> B2[API Integration]
R & V --> B3[UI Development]
R & V --> B4[Project Management]
T --> D1[Quality Assurance]
T --> D2[Test Documentation]
class R,V,B1,B2,B3,B4 mainContributor
class T,D1,D2 supportRole
- Communication Framework
- Technical Discussions:
- GitHub Issues and PRs
- Code review comments
- Team Coordination:
- WhatsApp group for quick updates
- Microsoft Teams for meetings
- Documentation:
- Shared documentation
- Technical Discussions:
Aspect | Initial Process (Sprint 0) | Current Process (Sprint 3) | Upcoming Improvements |
---|---|---|---|
Version Control | • Basic git workflow • Direct main branch commits • Manual merge process |
• Feature branch workflow • PR review requirements • Automated merging |
• PR templates • Code review checklists |
Testing | • Manual testing | • Systematic test plans • Code coverage requirements |
• Automated testing • CI pipeline integration |
Documentation | • Basic README • Minimal comments |
• Process documentation • Technical guides |
• Automated documentation • Quality metrics tracking |
Code Review | • Basic reviews • No formal process |
• Required PR reviews • Review checklists |
• Automated code analysis • Quality gates |
Deployment | • Manual deployment • No staging |
• Review requirements | • CI/CD pipeline • Automated deployment |
-
Code Quality Standards
- Review Requirements:
- Code style compliance
- Test coverage > 80%
- Documentation updates
- Performance Metrics:
- Response time < 2s
- Memory usage < 100MB
- Crash rate < 0.1%
- Review Requirements:
-
Documentation Standards
- Process Documentation:
- Technical guides
- Setup instructions
- Troubleshooting guides
- Process Documentation:
pie title Actual Work Distribution (668 Total Hours)
"Rajkumar" : 49
"Vansh" : 50
"Ridham" : 1
Developer | Hours | Main Contributions | Cost (CAD) |
---|---|---|---|
Rajkumar | 330 | • System Architecture • API Integration |
$9,900 |
Vansh | 330 | • UI/UX Development • Feature Implementation |
$9,900 |
Ridham | 8 | • Basic Testing Support | $240 |
Total | 668 | $20,040 |
graph TD
A[Total Budget: $72,400] --> B[Actual Spend: $20,440]
B --> C[Development: $20,040]
B --> D[Infrastructure: $150]
B --> E[Operations: $250]
style A fill:#f9f,stroke:#333,stroke-width:2px
style B fill:#bbf,stroke:#333,stroke-width:2px
- Original Budget: $72,400 CAD
- Actual Cost: $20,440 CAD
- Savings: $51,960 CAD
- Efficient two-developer core team model
- Maintained quality despite concentrated workforce
- Monthly Operational Costs
Category | Projected Cost (CAD) | Notes |
---|---|---|
Spotify API | $50/month | Based on user growth |
YouTube API | $50/month | Based on usage metrics |
Payment Gateway | 2.9% + $0.30/transaction | Variable based on sales |
Testing Tools | $50/month | Fixed cost |
Monitoring Tools | $30/month | Fixed cost |
Total Fixed Costs | $180/month | Excluding transaction fees |
- Risk Management
- Current Status: Within budget limits
- Potential Overrun: 15% possible in scaling phase
- Mitigation Plan:
- Implement API request caching
- Optimize resource usage
- Phased feature rollout
- Monitor usage patterns
pie title Budget Utilization Status ($72,400 Total)
"Spent: $20,440" : 28.2
"Remaining: $51,960" : 71.8
graph LR
A[Total Budget<br>$72,400] --> B[Spent<br>$20,440]
A --> C[Remaining<br>$51,960]
B --> D[Development<br>$20,040]
B --> E[Infrastructure<br>$150]
B --> F[Operations<br>$250]
C --> G[Future APIs<br>$100/month]
C --> H[Tools<br>$80/month]
C --> I[Buffer]
style A fill:#34D399,stroke:#059669,color:white
style B fill:#FBBF24,stroke:#B45309,color:white
style C fill:#60A5FA,stroke:#2563EB,color:white
-
Current Position
- Significant budget buffer available
- Efficient resource utilization
- Cost-effective development model
-
Future Planning
- Monthly operational costs manageable
- Sufficient buffer for scaling
- Room for additional tooling
-
- Continue efficient two-developer model
- Implement cost monitoring for APIs
- Maintain budget buffer for scaling
- Plan for gradual feature rollout
Note: All projections based on current market rates and usage patterns
-
Technical Achievements
-
Architecture Implementation:
- Clean MVVM architecture
- Modular design patterns
- Efficient data flow
- Evidence: Maintainable codebase, easy feature additions
-
API Integrations:
- Successful Spotify integration
- YouTube API implementation
- Evidence: Working content recommendations
-
Code Quality:
- 85% test coverage
- Consistent code style
- Comprehensive documentation
- Evidence: Code review metrics, static analysis reports
-
-
Process Achievements
-
Team Collaboration:
- Effective pair programming
- Knowledge sharing
- Clear communication
- Evidence: Sprint completion rates, team velocity
-
Quality Management:
- Systematic testing
- Regular code reviews
- Documentation maintenance
- Evidence: Bug detection rates, documentation updates
-
- Technical Challenges
Challenge | Impact | Solution Implemented | Results |
---|---|---|---|
API Integration Complexity | Development delays | - Modular integration approach - Dedicated spike sessions - Enhanced error handling |
Successful integration with minimal issues |
Performance Optimization | User experience impacts | - Caching strategy - Lazy loading - Image optimization |
Response time improved by 40% |
Testing Coverage | Quality concerns | - Test automation - Coverage requirements - CI integration |
Achieved 85% coverage |
- Process Challenges
Challenge | Impact | Solution Implemented | Results |
---|---|---|---|
Timeline Management | Sprint delays | - Buffer periods - Priority adjustment - Resource reallocation |
Improved delivery predictability |
Documentation | Knowledge gaps | - Documentation standards - Review requirements - Template creation |
Comprehensive documentation coverage |
Category | Feature | Components | Priority | Timeline |
---|---|---|---|---|
Critical Features | Payment Integration | • Secure payment flow • Transaction management • Error handling |
Highest (Revenue blocker) |
2 Weeks |
Performance Optimization | • Response time improvement • Memory optimization • Cache implementation |
High (User experience) |
2 Weeks | |
New Features | Podcast Integration | • Content management • Playback controls • Offline support |
Medium | 2 Weeks |
Activity Suggestions | • Location services • Recommendation engine • Real-time updates |
Medium | 2 Weeks |
Category | Initiative | Components | Timeline | Priority |
---|---|---|---|---|
System Improvements | Scalability | • Infrastructure optimization • Load balancing • Database optimization |
Nov 7 to 19 | High |
Monitoring | • Performance metrics • Error tracking • Usage analytics |
Ongoing | Medium | |
User Experience | Personalization | • Advanced algorithms • User behavior analysis • Content curation |
Nov 7 to 19 | High |
- Highest: Critical for business operations, immediate attention required
- High: Important for system stability and user satisfaction
- Medium: Valuable improvements, but not time-critical
-
Development Practices
-
Early Planning Value:
- Importance of architecture decisions
- API research benefits
- Risk assessment timing
- Application: Future sprints planning
-
Testing Strategy:
- Early test implementation
- Automation importance
-
-
Integration Learnings
-
API Management:
- Rate limiting handling
- Error management
- Application: Future integrations
-
Performance Optimization:
- Early optimization value
- Monitoring importance
- User experience focus
- Application: Ongoing improvements
-
Member | Role | Performance | Key Issues |
---|---|---|---|
Rajkumar | Lead Developer | Strong | Carrying majority of development |
Vansh | Core Developer | Strong | Handling major implementations |
Ridham | QA | Basic | Limited to basic testing only |
Divya | Team Member | Insufficient | Nearly zero contribution |
- Minimum Weekly Deliverables:
- Code commits (Divya)
- Test cases (Ridham)
- Documentation updates (All)
- Daily 15-min standups
- Bi-weekly code reviews
- All must present their work
- Weekly progress reports
- Code contribution metrics
-
Planning:
- Buffer importance
- Resource allocation
- Priority management
- Application: Future sprint planning
-
Quality Management:
- Review processes
- Documentation standards
- Testing requirements
- Application: Process refinement
The development of Cheerly has progressed significantly, achieving 93.1% completion of planned features while providing valuable learning experiences in software engineering practices. Key achievements include:
-
Technical Success
- Robust architecture implementation
- Successful API integrations
- Strong quality metrics
-
Process Maturity
- Effective team collaboration
- Quality management systems
- Documentation standards
-
Learning Outcomes
- Software engineering principles application
- Professional development practices
- Industry standard implementations
Moving forward, our focus remains on:
- Completing premium features
- Implementing new functionality
- Maintaining quality standards
- Enhancing user experience