- 🚗 Overview
- 🧠 Key Features
- 🐳 Docker Deployment
- 📦 Installation Steps
- 🌍 Access the Application
- 🧱 Architecture
- 👤 Default Accounts
- 🤖 AI Assistant
- 🛠 Management Commands
- 🧪 Development Mode
- 🔐 Security Notes
- 🎓 Academic Highlights
- 🏗 Tech Stack
- ✅ Conclusion
The platform allows users to:
- Browse vehicle listings
- Post and manage vehicles
- Leave reviews and ratings
- View AI-powered summaries and sentiment analysis of comments
- Authenticate with role-based access (Admin / Expert / User)
- 🔐 ASP.NET Identity authentication & roles
- ⭐ Rating system (Users & Posts)
- 🗂 PostgreSQL relational database
- 🪞 MongoDB mirror (NoSQL read optimization)
- 🤖 AI Assistant (OpenRouter LLM integration)
- 🐳 Fully containerized with Docker
- 🚀 One-command deployment
This project can be launched using only Docker and docker-compose, without cloning or building the source code.
- Docker installed 👉 https://docs.docker.com/get-docker/
Verify installation:
docker --version
docker compose versionDownload the deployment file:
curl -O https://raw.githubusercontent.com/AmrDroid-git/GoWheelsWebsite/master/docker-compose.prod.ymlOr download manually from GitHub.
The repository does NOT need to be cloned.
Run the application using:
OPENROUTER_API_KEY=your_api_key_here docker compose -f docker-compose.prod.yml up -d⏳ First startup may take 30–60 seconds while PostgreSQL initializes.
Open your browser:
http://localhost:8080
The system launches three containers:
| Service | Description |
|---|---|
gowheels_app |
ASP.NET Core (.NET 8) application |
gowheels_postgres |
PostgreSQL 15 database |
gowheels_mongo |
MongoDB 7 (NoSQL mirror) |
- PostgreSQL data
- MongoDB data
- ASP.NET DataProtection keys
| Role | Password | |
|---|---|---|
| Admin | admin@gowheels.local | Password123! |
| Expert | expert@gowheels.local | Password123! |
| User | user@gowheels.local | Password123! |
Each vehicle page includes an AI Assistant bubble that:
- Summarizes the vehicle listing
- Analyzes overall sentiment of user comments
- Provides buying tips
- Uses an external LLM via OpenRouter API
The API key must be provided at runtime:
OPENROUTER_API_KEY=your_key_here docker compose up -dStop application:
docker compose downFull cleanup (removes database data):
docker compose down -vView logs:
docker logs gowheels_appList running containers:
docker psIf you want to run locally without Docker:
dotnet restore
dotnet run --project GoWheelsApp URL:
http://localhost:5237
By default in production:
DatabaseSettings__RemakeDatabase=false
To force a full reset & reseed:
DatabaseSettings__RemakeDatabase=true
- API keys are injected via environment variables
- Database credentials are defined for academic/demo purposes
- In production, secrets should be externalized
- Clean architecture (Services, Interceptors, DbContext)
- Hybrid SQL + NoSQL architecture
- AI integration (LLM-based summarization & sentiment analysis)
- Containerized infrastructure
- Reproducible deployment
- Role-based authentication
- JSONB usage in PostgreSQL
- EF Core migrations & seeding
- ASP.NET Core 8
- Entity Framework Core
- PostgreSQL 15
- MongoDB 7
- Docker & Docker Compose
- OpenRouter API (LLM)
- jQuery + Razor Views
GoWheels demonstrates a modern full-stack architecture combining:
- Relational data consistency
- NoSQL read optimization
- AI-powered user experience
- Containerized reproducible deployment
The application can be launched with a single command and requires no manual configuration.
