Abstract
DreamTeam is a mobile and web application designed to help football enthusiasts organize and join local matches with players of similar skill levels. The app uses a smart matchmaking system based on ratings, preferred positions and location, ensuring balanced teams and competitive play. After each match, participants rate all the players on the field on a 1-10 scale, similar to how newspapers evaluate professional footballers. Key contributions such as goals and assists can boost ratings, while ratings from highly rated players have a greater impact on a player’s overall score. DreamTeam exploits smart matchmaking and real-time performance ratings to create a more balanced, competitive, and enjoyable experience for amateur football players.
Author
Name: Andrea Paganelli
Student number: 49338047
Functionality
- Personalized Profiles:
Players create detailed profiles specifying their preferred positions, strengths, weaknesses, and self-assessed skills.
- Post-Match Evaluation:
After each game, participants rate fellow players on a 1–10 scale, where actions like goals and assists provide bonus points. Ratings from higher-rated players influence the overall score more significantly, creating a dynamic and merit-based performance metric.
- Performance History:
A dashboard allows users to track their historical performance trends, compare match-by-match progress, and identify areas for improvement.
Smart Matchmaking & Game Suggestions
- Intelligent Match Formation:
The system leverages player ratings, position preferences, and geographic proximity to suggest matches and form balanced teams.
- Fill-the-Gap Feature:
Unfilled positions are highlighted, prompting organizers to send targeted invitations to suggested players in order to ensure a balanced lineup.
- Manual Invitations:
Organizers can manually invite players to join an upcoming match if they meet the desired criteria.
Event Scheduling & Social Integration
- In-App Scheduling:
Users can create and manage football match events with options to add locations and set dates/times.
- Calendar & Notification Integration:
Synchronize match events with external calendars and receive push notifications or email reminders.
- Social Connectivity:
Players can follow friends, join local football groups, and share match experiences via a built-in news feed and messaging system, turning each match into a social event.
Data Analytics & Dispute Resolution
- Performance Analytics:
A comprehensive dashboard provides statistical insights on average ratings and peak performances, considering both individual and team averages for each game.
- Dispute Resolution:
A built-in mechanism allows players to report questionable ratings, ensuring fairness and transparency in the evaluation process. Additionally, the algorithm assigns higher reliability to scores that closely align with a player’s average performance in that match.
In-App Communication
- Chat & Messaging:
Integrated chat and messaging enable players to coordinate with teammates before and after matches. Organizers can also send important match updates and announcements through the app.
Scope
The Minimum Viable Product (MVP) will focus on the following core functionalities:
- User Registration & Profile Setup
- Players create profiles including position preferences and self-assessed skill ratings.
- Basic personal details and location settings help with match recommendations.
- Match Scheduling & Smart Matchmaking
- Users can create or join games based on their rating, preferred position, and proximity.
- The system suggests matches where a player’s preferred position is available.
- Post-Match Rating System
- Players evaluate one another’s performance on a 1-10 scale, while key contributions like goals and assists can boost their score.
- Ratings from highly rated players influence overall scores more than those from lower-rated players.
- Basic Notifications & Invitations
- Calendar integration and push notifications for match reminders.
- Organizers can send invitations to players directly from the app.
- Performance Analytics Dashboard
- Players track their historical ratings, match history, and average performance trends.
- Simple Communication Tools
- In-app chat for organizing teams and discussing match details.
Quality Attributes
Availability
- DreamTeam will be accessible on multiple platforms, including iOS, Android, and the web.
- Load balancing and performance monitoring will be used to manage high-traffic periods.
Interoperability
- The app will integrate with external calendar services, social media platforms, and mapping APIs.
- APIs will enable seamless data exchange, allowing users to share match details and results.
Extensibility
- DreamTeam’s modular architecture ensures that new features (e.g., tournament mode or advanced analytics) can be added without significant redesign.
- Future versions could include support for additional sports beyond football.
Scalability
- The application will use cloud-based infrastructure to handle increasing numbers of users.
- The matchmaking algorithm will be optimized for efficiency, even under high loads.
Evaluation
To ensure DreamTeam meets its quality objectives, the following evaluation strategies will be employed:
Availability Evaluation
- Uptime Monitoring:
Use tools such as k6 or New Relic to simulate real-world traffic over a 30-day period, aiming for 99.5% uptime.
- Load Testing:
Incrementally increase user traffic using tools like Apache JMeter or k6, starting from 100 concurrent users and scaling up to 10,000 while monitoring the average response time.
- Error Rate Tracking:
Monitor server logs to ensure that error rates (e.g., HTTP 5xx responses) remain below 1% during peak periods.
Interoperability Evaluation
- API Testing:
Conduct automated tests (using Postman) to verify integrations with external services (calendars, mapping, social media) under different load conditions.
- Data Consistency Checks:
Execute cross-platform tests to ensure that match details, invitations, and notifications synchronize accurately between mobile (iOS and Android) and web interfaces.
Extensibility Evaluation
- Code Maintainability:
Use static analysis tools to measure code complexity and ensure modules have low coupling and high cohesion.
- Modular Scaling:
Simulate horizontal scaling of individual modules during load testing to ensure that new services can be added seamlessly.
Scalability Evaluation
- Stress Testing:
Simulate high traffic loads (up to 20,000 concurrent users) using stress testing tools such as Locust or k6.
- Throughput Measurement:
Measure the maximum number of requests per second that the system can handle without degradation in performance.
- Cloud Resource Monitoring:
Use cloud monitoring tools (e.g., AWS CloudWatch) to track auto-scaling events and resource utilization.