Skip to content

Latest commit

 

History

History
162 lines (123 loc) · 5.92 KB

File metadata and controls

162 lines (123 loc) · 5.92 KB

TurfMania

TurfMania Logo

Your Game, Your Turf, Your Time

Express.js TypeScript Next.js MongoDB Docker Azure Vercel Node.js

Overview

TurfMania is a comprehensive turf booking platform that connects sports enthusiasts with turf facilities. The application follows a modular architecture with separate interfaces for clients, organization owners, and administrators, creating a seamless experience for all stakeholders involved in the turf booking ecosystem.

Live Demos

Features

For Users

  • Explore Turfs: Browse through available turf facilities with detailed information
  • Advanced Filtering: Filter turfs based on location using Barikoi service integration
  • Review System: Leave reviews and ratings for turfs after usage
  • Seamless Booking: Book time slots with a user-friendly interface
  • Payment Integration: Secure payment system with options for advance booking

For Organizations

  • Onboarding Process: Request to register your organization and turfs on our platform
  • Time Slot Management: Robust time slot generator for effective scheduling
  • Team Management: Add users to your organization with customized roles and permissions
  • Booking Oversight: Track and manage all bookings for your turfs

For Administrators

  • Request Processing: Review and process organization registration requests
  • Role-Based Access Control: Sophisticated user management system with customizable roles
  • Permission Management: Create new roles and assign specific permissions
  • Platform Oversight: Comprehensive dashboard to monitor platform activities
  • Automated Tasks: Scheduled cronjobs for email notifications and database cleanup

Tech Stack

Backend

  • Framework: Express.js with TypeScript
  • Database: MongoDB (implied from structure)
  • Authentication: JWT-based authentication
  • File Storage: Cloudinary integration
  • Deployment: Docker containerization on Azure App Service
  • Automation: Scheduled cronjobs for emails and database maintenance

Frontend

  • Framework: Next.js
  • Styling: (Based on your project, e.g., Tailwind CSS, Material UI)
  • State Management: (Based on your project, e.g., Redux, Context API)
  • Deployment: Vercel

Project Structure

The project follows a monorepo structure with:

  • Server: Express.js backend with a modular architecture
  • Client Portal: Next.js frontend for end users
  • Admin Dashboard: Next.js frontend for administrators
  • Organization Portal: Next.js frontend for organization management

Backend Module Structure

modules/
├── admin_actions/
├── auth/
├── booking/
├── facility/
├── health-metrics/
├── organization/
├── permission/
├── role/
├── search/
├── sports/
├── timeslot/
├── turf/
├── turf-review/
└── user/

Each module typically contains:

  • Controller: Handles HTTP requests and responses
  • Model: Defines data structure and database schema
  • Service: Implements business logic
  • Routes: Defines API endpoints

Getting Started

Prerequisites

  • Node.js (v14+ recommended)
  • npm or yarn
  • MongoDB instance
  • Cloudinary account (for media storage)

Backend Setup

# Clone the repository
git clone https://github.com/your-username/turfmania.git

# Navigate to server directory
cd turfmania/server

# Install dependencies
npm install

# Set up environment variables
# Create a .env file based on .env.example

# Start development server
npm run dev

Frontend Setup

# Navigate to client, admin, or organization directory
cd turfmania/client  # or /admin or /organization

# Install dependencies
npm install

# Start development server
npm run dev

Deployment

The application components are deployed as follows:

  • Backend: Docker container on Azure App Service
  • Frontend Applications: Vercel

Development Workflow

Our team follows a structured git workflow: Git Workflow

Documentation

Detailed documentation is available in our docs folder.

User flow diagrams are available here.

Team

License

MIT License