Skip to content

aymanabid10/Roadify-Web-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

162 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚗 Roadify

.NET Next.js PostgreSQL MongoDB Docker

A modern vehicle listing and roadside assistance platform connecting drivers with automotive experts

FeaturesTech StackGetting StartedProject Structure


📋 Overview

Roadify is a full-stack web application that enables users to list vehicles, connect with automotive experts, and manage roadside assistance services. Built with modern technologies and best practices, it features real-time messaging, comprehensive user authentication, and a sleek, responsive UI.

✨ Features

  • 🔐 Secure Authentication - JWT-based auth with refresh tokens, email confirmation, and password recovery
  • 🚗 Vehicle Management - Create, update, and browse vehicle listings with photo uploads
  • 💬 Real-time Chat - Instant messaging powered by SignalR
  • Review System - Rate and review experts and services
  • 👨‍🔧 Expert Profiles - Showcase expertise with document verification
  • 📱 Responsive Design - Mobile-first UI built with Tailwind CSS and shadcn/ui
  • 🔍 Advanced Filtering - Search and filter listings by multiple criteria
  • 📊 Health Monitoring - Built-in health checks for system reliability

🛠️ Tech Stack

Backend

  • Framework: ASP.NET Core 10.0
  • Authentication: ASP.NET Identity with JWT
  • Database: PostgreSQL (primary), MongoDB (messaging)
  • Real-time: SignalR
  • Validation: FluentValidation
  • Documentation: Swagger/OpenAPI

Frontend

  • Framework: Next.js 16 with React 19
  • Styling: Tailwind CSS 4
  • UI Components: shadcn/ui, Radix UI
  • State Management: Zustand
  • Icons: Lucide React, Remix Icon
  • Theme: Dark/Light mode support

Infrastructure

  • Containerization: Docker & Docker Compose
  • Database Admin: pgAdmin 4

🚀 Getting Started

Prerequisites

Installation

  1. Clone the repository

    git clone <repository-url>
    cd Roadify
  2. Start the databases

    docker-compose up -d
    • PostgreSQL: localhost:5432
    • pgAdmin: http://localhost:5050 (admin@admin.com / root)
  3. Configure the backend

    Update backend/apiroot/appsettings.Development.json with your settings:

    {
        "ConnectionStrings": {
            "DefaultConnection": "Host=localhost;Database=roadify_db_v1;Username=postgres;Password=pass"
        },
        "JwtSettings": {
            "SecretKey": "your-secret-key",
            "Issuer": "your-issuer",
            "Audience": "your-audience"
        }
    }
  4. Run database migrations

    cd backend/apiroot
    dotnet ef database update
  5. Start the backend

    dotnet run

    API will be available at https://localhost:7000 (or configured port)

  6. Install frontend dependencies

    cd frontend
    npm install
  7. Start the frontend

    npm run dev

    App will be available at http://localhost:3000

📁 Project Structure

Roadify/
├── backend/
│   └── apiroot/
│       ├── Controllers/      # API endpoints
│       ├── Services/         # Business logic
│       ├── Models/           # Data models
│       ├── DTOs/             # Data transfer objects
│       ├── Validators/       # Input validation
│       ├── Middleware/       # Custom middleware
│       ├── Hub/              # SignalR hubs
│       └── Data/             # Database contexts
├── frontend/
│   ├── app/                  # Next.js app router pages
│   ├── components/           # React components
│   ├── contexts/             # React contexts
│   ├── hooks/                # Custom hooks
│   ├── lib/                  # Utilities and API client
│   └── store/                # Zustand stores
└── docker-compose.yml        # Container orchestration

🔌 API Documentation

Once the backend is running, access the interactive API documentation at:

  • Swagger UI: https://localhost:7000/swagger

Key endpoints include:

  • /api/auth - Authentication & user management
  • /api/listings - Vehicle listings
  • /api/vehicles - Vehicle management
  • /api/reviews - Review system
  • /api/messages - Messaging
  • /api/expertise - Expert profiles

Built by:

  • Ayman Abid
  • Mohamed Yassine Kallel
  • Makki Aloulou
  • Elyes Mlawah

Stars and contributions are welcome! 🚀

About

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors