We are the Dynamic Trio three Android developers working together to create powerful and user-friendly mobile apps.
Team Maker is an application designed to streamline the creation of balanced teams with fair skill distribution for various sports. Whether you're setting up a competitive event or organizing a casual game, Team Maker provides an intuitive platform to manage teams and competitions effectively.
- Create Competitions: Easily set up matches for a variety of sports such as football, volleyball, basketball, and more.
- Add and Manage Players: Add players to your roster with detailed profiles, including:
- Profile Picture
- First Name
- Last Name
- Position
- Skill Rating (used to balance teams)
- Update and Delete Players: Modify player details or remove players as needed.
- Form Matches: Select players from your list to create teams and organize matches.
- View Match Details: Access comprehensive details of created competitions, including team compositions.
- Check Location and Time: View essential location and time information for your events.
- Weather Information: Get weather forecasts based on the location of your competition to better plan your events.
With Team Maker, you can register, log in, and customize your experience by adding games and participants. Build balanced teams, track your competitions, and ensure a fair and enjoyable gaming experience. Start organizing your sports events and creating balanced teams with Team Maker!
On Boarding Page First | Sign Up | Sign In | Reset Password | Choose Competition | Update Competition | Add Competition |
---|---|---|---|---|---|---|
Options | Players | Add Player Dialog | Create Competition | Competition Detail | Saved Competition | Delete Saved Competition |
---|---|---|---|---|---|---|
TeamMaker.mp4
- Minimum SDK level 26
- Dependency Injection (Hilt) (2.51.1) - Used for dependency injection, simplifying the management of application components.
- Jetpack Compose (1.9.1) - A modern toolkit for building native UI in Android.
- Navigation (1.2.0) - Handles in-app navigation in a type-safe manner.
- Compose Lifecycle (2.8.4) - Manages lifecycle-aware components in Jetpack Compose.
- Coroutines - Provides a simple way to manage background threads, making asynchronous programming easier and more efficient.
- Flow - A reactive streams API in Kotlin used for managing data streams asynchronously.
- DataStore (1.1.1) - Handles data storage and persistence, replacing SharedPreferences for more complex data structures.
- MVVM - A design pattern used to separate concerns, making the application more modular, testable, and maintainable.
- Lifecycle (2.8.4) - Manages Android lifecycle-aware components.
- ViewModel - Stores UI-related data that isn't destroyed on UI changes.
- UseCases - Located domain layer that sits between the UI layer and the data layer.
- Repository - Located in the data layer that contains application data and business logic.
- Retrofit (2.11.0) A type-safe HTTP client for Android and Java
- OkHttp (5.0.0-alpha.14) An HTTP client that efficiently makes network requests
- Gson (2.11.0) - A library for serializing and deserializing JSON data.
- Firebase - A suite of tools used for backend services including authentication, Firestore database, storage, crash reporting, analytics, and performance monitoring.
- Firebase Authentication (23.0.0) Firebase Authentication provides backend services, easy-to-use SDKs, and ready-made UI libraries to authenticate users to your app.
- Firebase Firestore (25.0.0) Cloud Firestore is a flexible, scalable database for mobile, web, and server development from Firebase and Google Cloud.
- Firebase Storage (21.0.0)
- Firebase Crashlytics (19.0.3) Firebase Crashlytics is a lightweight, real-time crash reporter that helps you track, prioritize, and fix stability issues that erode your app quality.
- Firebase Performance (21.0.1)
- Firebase Analytics (22.0.2) Firebase Analytics is a free app measurement solution that provides insight on app usage and user engagement.
- Location (21.3.0) - Used for obtaining device location data.
- SharedPreferences Store private primitive data in key-value pairs. Standard Android library with no specific version (comes with the Android SDK).
- Lottie Animation (6.3.0) - Used to display animations in the app.
- Coil (2.6.0) - An image loading library for Android backed by Kotlin Coroutines.
This Android app uses the MVVM (Model-View-ViewModel) pattern and Clean Architecture principles, organized into four main modules for better scalability and maintainability.
MVVM
- Model: Manages data and business logic, separate from the UI.
- View: Displays the data and interacts with the user.
- ViewModel: Connects the View and Model, handling UI-related logic and state management.
Clean Architecture & Multi Module
- App Module: The core module that integrates all other modules and provides the main entry point of the application.
- Data Module: Handles data sources, such as APIs and databases, and provides data to the Domain Layer.
- Domain Module: Contains the core business logic and use cases, which are independent of external frameworks.
- Feature Module: Encapsulates the app's features, allowing for modular development and testing of individual functionalities.
The application integrates with the following APIs and services:
- OpenWeather API: Provides weather data and forecasts. More information can be found here.
- Restful API: Utilized for data communication and integration to get weather data.
- Retrofit: A type-safe HTTP client for Android, used for interacting with RESTful APIs.
- OkHttp: An HTTP client used for making network requests and handling responses efficiently.
- Firebase: Used for various backend services, including:
- Authentication: User sign-in and management.
- Firestore Database: Real-time database for storing and syncing app data.
- Storage: File storage and retrieval.
- Crashlytics: Real-time crash reporting and diagnostics.
- Performance Monitoring: Monitoring and optimizing app performance.
- Analytics: Data collection and insights on app usage.
- Google Services: Used for location services, allowing the app to access and manage location data. More detail
- If You Want to Run the App on Android Studio:
- Clone this repository to your preferred directory using the following command:
git clone https://github.com/Yusuf-Solmaz/TeamMaker
-
Open the cloned project in Android Studio.
-
Create
secrets.properties
file in the project directory. -
Add the following line with your API key to
secrets.properties
:
API_KEY=YOUR_API_KEY_HERE
- Build and run the app on an emulator or a physical device.
- Or you can download the APK of the application here
Bengisu Şahin - bengisusaahin@gmail.com | |
Talha Çalışır - talha5797@gmail.com | |
Yusuf Mücahit Solmaz - yusufmucahitsolmaz@gmail.com |
This project is licensed under the MIT License. See the LICENSE file for details.