A modern vehicle listing and roadside assistance platform connecting drivers with automotive experts
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.
- 🔐 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
- 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
- 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
- Containerization: Docker & Docker Compose
- Database Admin: pgAdmin 4
- Docker and Docker Compose
- .NET 10.0 SDK
- Node.js 20+
-
Clone the repository
git clone <repository-url> cd Roadify
-
Start the databases
docker-compose up -d
- PostgreSQL:
localhost:5432 - pgAdmin:
http://localhost:5050(admin@admin.com / root)
- PostgreSQL:
-
Configure the backend
Update
backend/apiroot/appsettings.Development.jsonwith 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" } } -
Run database migrations
cd backend/apiroot dotnet ef database update -
Start the backend
dotnet run
API will be available at
https://localhost:7000(or configured port) -
Install frontend dependencies
cd frontend npm install -
Start the frontend
npm run dev
App will be available at
http://localhost:3000
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
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! 🚀