Skip to content

rahulmathews/riders-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

70 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Riders Server - Ride Sharing Backend Application

Node.js TypeScript License Pipeline Latest Release

A comprehensive backend API for a modern ride-sharing platform built with NestJS, GraphQL, and self-hosted Supabase, providing real-time ride matching, location tracking, and seamless payment processing.

πŸš— Project Overview

Riders Server is the backbone of a ride-sharing application that connects passengers with drivers in real-time. The platform handles everything from user authentication and ride requests to live GPS tracking and payment processing.

🎯 Core Features

User Management

  • User Registration & Authentication - Secure JWT-based auth for riders and drivers
  • Profile Management - Complete user profiles with verification status
  • Role-based Access Control - Separate permissions for riders, drivers, and admins

Ride Management

  • Ride Requests - Real-time ride booking with pickup/dropoff locations
  • Driver Matching - Intelligent algorithm to match nearest available drivers
  • Ride Tracking - Live GPS tracking for both riders and drivers
  • Ride History - Complete trip history with receipts and ratings

Real-time Features

  • Live Location Updates - WebSocket-based real-time location sharing
  • Push Notifications - Instant alerts for ride status changes
  • Driver Availability - Real-time driver status management
  • ETA Calculations - Dynamic arrival time estimates

Payment System

  • Multiple Payment Methods - Credit cards, digital wallets, cash
  • Fare Calculation - Dynamic pricing based on distance, time, and demand
  • Payment Processing - Secure transaction handling
  • Receipt Generation - Automated invoice creation

Additional Features

  • Rating & Reviews - Two-way rating system for riders and drivers
  • Admin Dashboard - Management portal for monitoring and analytics
  • Geofencing - Service area management and restrictions
  • Analytics - Trip analytics, earnings reports, and performance metrics

πŸ›  Tech Stack

Current Implementation

  • NestJS - Enterprise-grade Node.js framework with TypeScript
  • TypeScript - Strict mode enabled with comprehensive type safety
  • ESLint - Code quality with security rules and NestJS optimization
  • Prettier - Consistent code formatting (80 char width, single quotes, trailing commas)
  • Husky - Pre-commit hooks for automatic code quality checks
  • Commitlint - Conventional commit message validation

Planned Features (See ROADMAP.md)

  • GraphQL - Flexible API with real-time subscriptions
  • Self-hosted Supabase - PostgreSQL with real-time capabilities
  • Authentication & Authorization - JWT-based auth system
  • Real-time Features - Live location tracking and notifications
  • Payment Integration - Stripe payment processing
  • External APIs - Google Maps, Twilio SMS, Push notifications
  • Deployment - Docker, CI/CD, Production infrastructure

πŸ“ Project Structure

riders-server/
β”œβ”€β”€ src/                   # Source code
β”‚   β”œβ”€β”€ app.controller.ts  # Main application controller
β”‚   β”œβ”€β”€ app.module.ts      # Root application module
β”‚   β”œβ”€β”€ app.service.ts     # Main application service
β”‚   └── main.ts            # Application entry point
β”œβ”€β”€ .github/workflows/     # GitHub Actions workflows
β”‚   └── ci-release.yml     # Unified CI and Release workflow
β”œβ”€β”€ .husky/                # Git hooks
β”‚   β”œβ”€β”€ pre-commit         # Pre-commit quality checks
β”‚   └── commit-msg         # Commit message validation
β”œβ”€β”€ .eslintrc.js           # ESLint configuration
β”œβ”€β”€ .prettierrc            # Prettier configuration
β”œβ”€β”€ .prettierignore        # Prettier ignore patterns
β”œβ”€β”€ .releaserc.js          # Enhanced semantic release configuration with lightweight releases
β”œβ”€β”€ commitlint.config.js   # Commitlint configuration
β”œβ”€β”€ scripts/               # Utility scripts
β”œβ”€β”€ tsconfig.json          # TypeScript configuration
β”œβ”€β”€ tsconfig.build.json    # Build-specific TypeScript config
β”œβ”€β”€ package.json           # Dependencies and scripts
β”œβ”€β”€ CHANGELOG.md           # Automated changelog with version history
β”œβ”€β”€ README.md              # Project documentation
β”œβ”€β”€ DEVELOPMENT.md         # Developer guide
└── ROADMAP.md             # Development roadmap

πŸš€ Current API

Basic NestJS REST API with a simple "Hello World" endpoint.

GraphQL API implementation planned - See ROADMAP.md for detailed implementation timeline.

πŸš€ Quick Start

# Clone and install
git clone https://github.com/your-username/riders-server.git
cd riders-server
npm install

# Start development
npm run start:dev

For detailed development setup, coding standards, and workflows, see DEVELOPMENT.md.

IDE: This project is optimized for JetBrains WebStorm with comprehensive setup instructions in the development guide.

πŸ“‹ Current Status

This is a basic NestJS application with a robust development foundation:

  • βœ… TypeScript with strict mode
  • βœ… ESLint with security rules
  • βœ… Prettier code formatting
  • βœ… Husky pre-commit hooks
  • βœ… Commitlint for conventional commits
  • βœ… Enhanced semantic release with emoji-based changelog
  • βœ… Automated versioning with rich commit tracking
  • βœ… GitHub integration with formatted timestamps

πŸ“š Documentation

  • DEVELOPMENT.md - Complete developer guide, coding standards, and workflows
  • ROADMAP.md - Detailed implementation timeline and feature roadmap

🎯 Next Steps

See ROADMAP.md for the complete implementation plan:

  • Semantic release automation
  • GraphQL API setup
  • Database integration
  • Authentication system
  • Real-time features
  • Payment processing

πŸš€ Release Workflow

This project uses a simplified two-branch approach with automatic version progression:

  1. Development (develop): Ongoing development with alpha/beta/rc versioning
    • 0.1.0-alpha.1 β†’ 0.1.1-alpha.1 β†’ 0.2.0-alpha.1 β†’ 1.0.0-beta.1 β†’ 2.0.0-rc.1
  2. Stable (main): Production-ready releases (1.0.0+)

Features:

  • Unified Pipeline: Single CI β†’ Release workflow for better flow control
  • Automatic Tags: Git tags created for each release (v0.1.0-alpha.1, v1.0.0-beta.1, v2.0.0)
  • Enhanced Changelog: Rich emoji-based sections with timestamps and author links
  • Commit Tracking: Short hash display with links to full commit details
  • Formatted Timestamps: CST/CDT timezone with AM/PM format
  • Lightweight Releases: Clean releases without build artifacts for faster deployment
  • GitHub Releases: Automatic GitHub releases with detailed release notes

For detailed release process and scripts, see DEVELOPMENT.md.

🀝 Contributing

  1. Read DEVELOPMENT.md for development setup and coding standards
  2. Fork the repository
  3. Create a feature branch (git checkout -b feat/your-feature)
  4. Follow conventional commit format for all commits
  5. Push to your branch and create a Pull Request

All contributions must pass automated checks (ESLint, Prettier, commitlint).

Commit Types: Use conventional commit types for automatic categorization:

  • feat: - New features (✨ Features)
  • fix: - Bug fixes (πŸ› Bug Fixes)
  • docs: - Documentation (πŸ“š Documentation)
  • style: - Code style changes (πŸ’„ Styles)
  • refactor: - Code refactoring (♻️ Code Refactoring)
  • test: - Adding tests (πŸ§ͺ Tests)
  • build: - Build system changes (πŸ—οΈ Build System)
  • ci: - CI/CD changes (πŸ‘· Continuous Integration)

πŸ“ License

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

πŸ“ž Support

For support and questions, please contact:

πŸ—Ί Roadmap

For detailed development phases, timelines, and technical milestones, see our comprehensive Development Roadmap.

Quick Overview

  • Phase 1 (Weeks 1-8): MVP Foundation - Core ride-sharing functionality
  • Phase 2 (Weeks 9-16): Enhanced Features - Payments, scheduling, admin tools
  • Phase 3 (Weeks 17-24): Scale & Optimization - Microservices, AI, enterprise features
  • Phase 4+: Future Enhancements - IoT, blockchain, autonomous vehicles

About

This is the backend application for Riders App

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •