66 lines
3.5 KiB
Markdown
66 lines
3.5 KiB
Markdown
|
|
# Project Features
|
|
|
|
This document outlines the main features of the Tourn.me application, a comprehensive platform for managing padel tournaments. The project is divided into a frontend application (`app.tourn.me`) and a backend service (`padeltour`).
|
|
|
|
## Backend Features (padeltour)
|
|
|
|
The backend is built with Python and FastAPI, providing a robust API for the frontend.
|
|
|
|
### Core APIs
|
|
|
|
- **Authentication**: Handles user login, token refresh, and other authentication-related tasks.
|
|
- **Companies**: Manages company information, including admin creation and password changes.
|
|
- **Courts**: Provides endpoints for creating, retrieving, updating, and deleting court information.
|
|
- **Dashboard**: Offers endpoints to fetch data for the main dashboard, including statistics and overviews.
|
|
- **Password Reset**: Manages the password reset process, including token validation and password updates.
|
|
- **Players**: Handles player management, including creation, deletion, and association with tournaments.
|
|
- **Registration**: Manages the company registration process, including email verification.
|
|
- **Tournaments**: Provides comprehensive management of tournaments, from creation to player and court assignments.
|
|
- **Tournament Staging**: Manages the different stages of a tournament, including:
|
|
- **Brackets**: Handles the creation and management of tournament brackets.
|
|
- **Groups**: Manages player groups within a tournament.
|
|
- **Matches**: Provides endpoints for match management and scheduling.
|
|
- **Scheduling**: Automates the scheduling of matches.
|
|
- **Stages**: Manages the different stages of a tournament (e.g., group stage, knockout stage).
|
|
- **Stats**: Provides statistics for tournaments.
|
|
|
|
## Frontend Features (app.tourn.me)
|
|
|
|
The frontend is a Next.js application that provides a user-friendly interface for managing tournaments.
|
|
|
|
### Main Sections
|
|
|
|
- **Dashboard**: The main landing page after login, providing an overview of key metrics.
|
|
- **Overview**: Displays statistics related to sales, user activity, and more.
|
|
- **Courts**: Allows for the management of padel courts.
|
|
- **Players**: A section for managing players, including creation and viewing.
|
|
- **Products**: Manages products or services offered.
|
|
- **Profile**: Allows users to manage their company profile and settings.
|
|
- **Tournament**: The core section for managing tournaments.
|
|
|
|
### Tournament Management
|
|
|
|
- **Tournament Creation**: A step-by-step process to create new tournaments.
|
|
- **Tournament Overview**: A view of all ongoing and past tournaments.
|
|
- **Tournament Details**: A detailed view of a specific tournament, including:
|
|
- Player management
|
|
- Court assignments
|
|
- Match scheduling
|
|
- Bracket visualization
|
|
|
|
### User Authentication
|
|
|
|
- **Sign In/Register**: Standard user authentication pages.
|
|
- **Forgot/Reset Password**: A complete flow for password recovery.
|
|
|
|
### Other Features
|
|
|
|
- **Email Service**: Integrated email notifications for events like registration and password recovery.
|
|
- **Internationalization (i18n)**: The application supports multiple languages.
|
|
- **Real-time Updates**: The application is set up for real-time data fetching and updates.
|
|
- **API Documentation**: The project includes a `collection` folder with API requests for easier testing and integration.
|
|
- **Monitoring**: The `grafana` folder suggests that the application is set up for monitoring with Grafana dashboards.
|
|
- **Database Migrations**: Uses `alembic` for handling database schema migrations.
|
|
- **Containerization**: Both the frontend and backend applications are containerized using Docker.
|