athletiqs

AthletiQ - Sports Management System

A comprehensive digital platform for managing sports participation, athlete verification, and inter-institutional sports coordination. AthletiQ streamlines the process of athlete registration, document verification, and participation card generation for educational institutions.

πŸ† Features

For Sports Administrators

For Sports Heads (Institutional Level)

For Participants

πŸ“Έ Screenshots

Admin Dashboard

Admin Dashboard Main administrative interface showing system overview, user management, and key metrics

Sports Head Portal - Dashboard

Sports Head Dashboard Institution-specific dashboard with participant statistics and pending verifications

Participant Registration

Participant Registration Comprehensive participant registration form with document upload functionality

Document Management

Document Management Document upload and verification interface for participant documents

Login Interface

Login Interface Secure login system with multi-factor authentication support

Reports & Analytics

Reports Dashboard Advanced reporting interface with charts and data visualization

Verification Status

Verification Status Real-time tracking of participant verification progress

User Management

User Management Administrative interface for managing sports heads and system users

πŸ—οΈ System Architecture

Applications

User Roles

  1. System Admin: Full system access and configuration
  2. Sports Admin: Athlete verification, reports, and institutional oversight
  3. Sports Head: Institution-specific participant management

πŸš€ Quick Start

Prerequisites

Installation

  1. Clone the repository
    git clone https://gitlab.com/mactimothy07/athletiq.git
    cd athletiq
    
  2. Install dependencies
    # Install root dependencies
    npm install
    
    # Install backend dependencies
    cd backend
    npm install
    
    # Install admin dashboard dependencies
    cd ../admin
    npm install
    
    # Install sports head portal dependencies
    cd ../frontend
    npm install
    
  3. Environment Setup

    Create a .env file in the backend directory:

    PORT=5000
    MONGODB_URI=your_mongodb_connection_string
    JWT_SECRET=your_jwt_secret_key
    JWT_EXPIRES_IN=1d
    SESSION_SECRET=your_session_secret
       
    # Cloudinary Configuration
    CLOUDINARY_CLOUD_NAME=your_cloudinary_name
    CLOUDINARY_API_KEY=your_api_key
    CLOUDINARY_API_SECRET=your_api_secret
       
    # Email Configuration
    EMAIL_USER=your_email@gmail.com
    EMAIL_PASS=your_app_password
    EMAIL_FROM=noreply@athletiq.com
    FRONTEND_URL=http://localhost:5173
    
  4. Start the application

    Terminal 1 - Backend Server:

    cd backend
    npm start
    

    Terminal 2 - Admin Dashboard:

    cd admin
    npm run dev
    

    Terminal 3 - Sports Head Portal:

    cd frontend
    npm run dev
    

πŸ” Default Login Credentials

Sports Administrator Access

Note: Change these credentials after first login for security purposes.

πŸ“± Application Access

User Type Application URL Description
Sports Admin/System Admin Admin Dashboard http://localhost:5174 Full administrative interface
Sports Head Sports Portal http://localhost:5173 Institution-specific management
API Backend Server http://localhost:5000 RESTful API endpoints

πŸ› οΈ Technology Stack

Frontend

Backend

Features

πŸ“– API Documentation

Authentication Endpoints

POST /api/auth/register          - User registration
POST /api/auth/login            - User login
POST /api/auth/verify-email     - Email verification
POST /api/auth/forgot-password  - Password reset request
POST /api/auth/reset-password   - Password reset

Admin Endpoints

GET  /api/admin/users           - List all users
GET  /api/admin/sports-heads    - List sports heads
POST /api/admin/verify-participant/:id - Verify participant
GET  /api/admin/dashboard-stats - Dashboard statistics
GET  /api/admin/reports         - Generate reports

Participant Management

GET  /api/participants          - List participants
POST /api/participants          - Create participant
GET  /api/participants/:id      - Get participant details
PUT  /api/participants/:id      - Update participant
DELETE /api/participants/:id    - Delete participant

πŸ—„οΈ Database Schema

Core Collections

πŸ”§ Development

Project Structure

athletiq/
β”œβ”€β”€ backend/           # Node.js API server
β”‚   β”œβ”€β”€ controllers/   # Request handlers
β”‚   β”œβ”€β”€ models/        # Database models
β”‚   β”œβ”€β”€ routes/        # API routes
β”‚   β”œβ”€β”€ middleware/    # Custom middleware
β”‚   └── utils/         # Utility functions
β”œβ”€β”€ admin/             # Admin dashboard (React)
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ pages/
β”‚   β”‚   β”œβ”€β”€ contexts/
β”‚   β”‚   └── services/
β”œβ”€β”€ frontend/          # Sports head portal (React)
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ pages/
β”‚   β”‚   └── services/
└── README.md

Development Commands

# Backend development
cd backend && npm run dev

# Admin dashboard development
cd admin && npm run dev

# Sports portal development
cd frontend && npm run dev

# Build for production
npm run build

# Run tests
npm test

πŸš€ Deployment

Environment Variables (Production)

Ensure all environment variables are properly configured for production:

Build Commands

# Build admin dashboard
cd admin && npm run build

# Build sports portal
cd frontend && npm run build

# Start production backend
cd backend && npm start

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ‘₯ Authors

πŸ“ž Support

For support and questions:

πŸ—ΊοΈ Roadmap


AthletiQ - Streamlining sports management for educational institutions.