Course: COMP-8117 Applied Software Engineering
Instructor: Dr. Aznam YACOUB
Date: December 8, 2024
Source Code: GitHub
- Rajkumar Patel - Team Lead
- Vansh Patel - Senior Developer
- Ridham Patel - QA Engineer
- Divya Mistry - Documentation
graph TD
A[Project Foundation] --> B[Core Features]
B --> C[Integration Phase]
C --> D[Polish & Optimization]
A --> |Sept 29| A1[Environment Setup]
A --> |Oct 3| A2[API Selection]
B --> |Oct 13| B1[Auth System]
B --> |Oct 20| B2[UI Framework]
C --> |Oct 27| C1[Spotify & YouTube]
C --> |Nov 2| C2[Location Services]
D --> |Nov 10| D1[Performance]
D --> |Dec 8| D2[Premium Features]
pie title Crash Distribution by Component
"MoodRecommendationActivity" : 13
"MoodsFragment" : 8
"VideoAdapter" : 7
"SplashActivity" : 6
"Others" : 9
Stability Metrics:
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 |
The Cheerly project has successfully implemented its core feature set through a systematic development approach. Our implementation spans four major content domains:
A sophisticated integration with Spotify's API enables mood-based music recommendations:
- Real-time mood analysis
- Personalized playlist generation
- Cross-platform synchronization
Implementation Evidence:
class SpotifyRepository(private val context: Context) {
suspend fun getRecommendations(mood: String): List<Track> {
val parameters = when (mood.lowercase()) {
"happy" -> RecommendationParams(valence = 0.8f, energy = 0.7f)
"sad" -> RecommendationParams(valence = 0.2f, energy = 0.3f)
// Additional mood mappings
}
return apiService.getRecommendations(parameters)
}
}
YouTube integration provides targeted video suggestions:
graph LR
A[User Mood] --> B[Content Analysis]
B --> C[YouTube API]
C --> D[Filtered Results]
D --> E[Recommendations]
Key Features:
- Mood-appropriate content filtering
- Personalized recommendations
- Engagement tracking
Implemented comprehensive podcast recommendations through TeddyPodcast API:
System Components:
graph TD
A[Mood Input] --> B[Genre Selection]
B --> C[Content Filtering]
C --> D[Weather Check]
D --> E[Final Suggestions]
Location-based activity suggestions with weather integration:
Features:
- Real-time location tracking
- Weather-aware recommendations
- Availability checking
- Distance calculations
pie title Total Budget Distribution ($72,400)
"Human Resources" : 62
"Infrastructure & Tools" : 12
"API & Services" : 6
"Training & Documentation" : 4
"Maintenance Reserve" : 17
Team Contribution Analysis:
pie title Task Distribution by Developer
"Rajkumar" : 23
"Vansh" : 24
Task Distribution by Type:
Type | Count | Primary Developer |
---|---|---|
Architecture & Backend | 12 | Rajkumar |
UI/UX & Frontend | 13 | Vansh |
API Integration | 8 | Rajkumar |
Feature Implementation | 10 | Shared |
We encountered and resolved several significant technical challenges:
Performance Optimization:
- Challenge: Content loading performance issues
- Solution: Implemented efficient caching system
- Result: 40% improvement in loading times
API Integration:
- Challenge: Rate limiting and quota management
- Solution: Implemented request throttling
- Result: Zero quota violations in production
The two-person core development team maintained high productivity through:
- Regular pair programming sessions
- Clear task allocation
- Daily communication
- Knowledge sharing sessions
gantt
title Feature Enhancement Timeline
dateFormat YYYY-MM-DD
section Performance
Caching Optimization :2024-12-10, 7d
Memory Management :2024-12-15, 10d
section Features
Advanced Mood Detection :2025-01-01, 14d
New Content Types :2025-01-15, 21d
-
Technical Improvements:
- Enhanced security protocols
- Advanced mood detection
- Performance optimization
-
Content Expansion:
- Movies integration
- Article recommendations
- Game suggestions
The development of Cheerly has provided our team with profound insights into software engineering principles that extend far beyond technical implementation. Our journey has revealed software engineering as a multifaceted discipline requiring both technical expertise and broader professional competencies.
graph TD
A[Learning Dimensions] --> B[Technical Skills]
A --> C[Process Understanding]
A --> D[Professional Growth]
B --> B1[System Architecture]
B --> B2[Problem Solving]
B --> B3[Integration Skills]
C --> C1[Iterative Development]
C --> C2[Quality Assurance]
C --> C3[Documentation]
D --> D1[Team Collaboration]
D --> D2[Project Management]
D --> D3[Communication]
Our experience has demonstrated that software engineering encompasses much more than coding and development:
Core Learning Areas:
- Mathematical modeling for complex problems
- System architecture and constraints
- Cross-disciplinary integration
- Human factors in software development
Our journey revealed several critical lessons about software development:
graph LR
A[Practical Implementation] --> B[Self Reflection]
B --> C[Process Improvement]
C --> D[Knowledge Growth]
D --> A
The team embraced an iterative approach to development and learning:
Development Cycle:
- Practical implementation phases
- Regular reflection periods
- Continuous improvement process
- Knowledge documentation
pie title Technical Learning Distribution
"System Architecture" : 35
"Performance Optimization" : 25
"Integration Skills" : 25
"Security Implementation" : 15
Our technical understanding evolved in key areas:
- System-wide implications
- Scalability considerations
- Architectural decisions
- Performance optimization
Effective collaboration emerged as a crucial success factor:
Collaboration Highlights:
- Pair programming benefits
- Clear role definitions
- Knowledge sharing practices
- Communication protocols
Moving forward, we've identified several areas for continued growth:
graph TD
A[Growth Areas] --> B[Computational Expertise]
A --> C[Architecture Mastery]
A --> D[Performance Skills]
A --> E[Security Knowledge]
B --> B1[Algorithm Design]
B --> B2[Problem Modeling]
C --> C1[System Design]
C --> C2[Integration Patterns]
D --> D1[Optimization]
D --> D2[Scalability]
E --> E1[Security Protocols]
E --> E2[Best Practices]
Key Areas:
-
Business Understanding
- Domain knowledge
- Value creation
- Market awareness
-
Project Management
- Resource allocation
- Timeline management
- Risk assessment
-
Communication
- Technical documentation
- Team collaboration
- Stakeholder engagement
Our experience has yielded valuable insights across multiple dimensions:
-
Multifaceted Nature of Software Engineering
pie title Software Engineering Aspects "Technical Implementation" : 30 "Business Value" : 25 "Human Factors" : 25 "Process Management" : 20
-
Continuous Learning The project reinforced the importance of:
- Challenge-based growth
- Reflective practice
- Knowledge documentation
-
Collaborative Success Team success factors included:
- Clear communication channels
- Defined roles and responsibilities
- Active knowledge sharing
The Cheerly project represents both a technical achievement and a comprehensive learning experience in applied software engineering. Through systematic development practices and effective team collaboration, we've not only delivered a robust platform but also gained valuable insights into the broader scope of software engineering as a discipline.
- Successful implementation of core features
- Stable performance metrics
- Efficient resource utilization
- Strong technical foundation
- Enhanced problem-solving capabilities
- Improved team collaboration skills
- Better project management practices
- Deeper understanding of software engineering principles
Moving forward, we have:
- Clear technical enhancement roadmap
- Identified areas for professional growth
- Strong foundation for future projects
- Enhanced understanding of software engineering principles
Document | Status | Last Updated | Description |
---|---|---|---|
Software Requirements Specification (SRS) | ✅ Complete | Dec 8, 2024 | Comprehensive requirements documentation |
Software Design Specification (SDS) | ✅ Complete | Dec 8, 2024 | Detailed system design and architecture |
Final-Report.md | ✅ Complete | Dec 8, 2024 | Project overview and setup instructions |
Screenshot | Purpose | Status |
---|---|---|
App Logo | Brand Identity | ✅ Complete |
App Opening | Launch Screen | ✅ Complete |
User Preference | Setup Flow | ✅ Complete |
Selected Preference | User Choices | ✅ Complete |
Select Current Mood | Mood Selection UI | ✅ Complete |
Mood by Prompt | Alternative Input | ✅ Complete |
Happy Mood Song Recommendation | Music Feature | ✅ Complete |
Happy Mood Video Recommendation | Video Feature | ✅ Complete |
Happy Mood Podcast Recommendation | Podcast Feature | ✅ Complete |
Haappy Mood Activity Recommendation | Activity Feature | ✅ Complete |
Artifact | Type | Description |
---|---|---|
Crash Stats | Analysis | Statistical crash data |
Crash Reports | Documentation | Detailed crash information |
First Crash Report Trace | Technical Log | Initial crash analysis |
Artifact | Type | Details |
---|---|---|
app-release-unsigned.apk | Build Output | Application package |
mobsfscan_report.json | Security Report | Security analysis results |
Job History | Pipeline Log | Build history records |
Resource Usage | Performance | Resource utilization data |
Running Time | Performance | Pipeline execution metrics |
Diagram | Type | Purpose |
---|---|---|
Core Sequence Diagram | Technical Design | Main system flow |
Mood Tracking Sequence | Technical Design | Mood feature workflow |
Premium Subscription Sequence | Technical Design | Subscription process |
Use Case Diagram | System Design | User interaction scenarios |
User Interaction Flow | User Experience | Navigation pathways |
Category | Count | Status |
---|---|---|
Screenshots | 10 | ✅ Complete |
UML Diagrams | 5 | ✅ Complete |
Technical Reports | 3 | ✅ Complete |
Pipeline Artifacts | 5 | ✅ Complete |
Documentation Files | 3 | ✅ Complete |
Build Outputs | 1 | ✅ Complete |
Total Artifacts: 27 files across 7 directories