OnRoad - FullStack

OnRoad is a platform where users can anonymously contribute vehicle prices which helps the community get real and transperant pricing. Its USP is the complete breakdown of prices and hidden charges which seperates it from the competetion, It is by far the project I am most proud of.

Tech Stack :
OnRoad - FullStack

Features

🖥️ Monorepo Setup

Our application adopts a monorepo architecture, consolidating backend and frontend code within a single repository. This streamlined approach facilitates efficient codebase management and simplifies the deployment process.

⚡ Zippy and Fast Frontend

Leveraging React.js and TypeScript, our frontend is engineered for speed and efficiency, ensuring an exceptional user experience. Fully responsive and optimized for all devices, it features Gzip-compressed static assets for enhanced transfer speeds.

📦 Microservices Architecture with End-to-End Dockerization

Built on a foundation of independent microservices, our application architecture allows for scalable components. Complete dockerization enables seamless operation across any environment with a simple
command.

🌐 Hasura GraphQL with Automated APIs

Utilizing Hasura, we generate GraphQL APIs that streamline API creation and management. Hasura enriches our application with role-based access control, real-time updates, and event triggers.

🔐 Authentication and Authorization

Our authentication framework employs JWT tokens and supports diverse methods such as username-password, magic-link, Google login, and PassKeys (WebAuthn API). It ensures security with long-lived refresh tokens and short-lived access tokens.

🔑 PassKeys

Incorporating PassKeys, based on the WebAuthn API, offers a phishing-resistant authentication method. This innovation enhances user security and provides a seamless login experience.

💾 Closer to Database Layer

Our application maximizes database utilization for optimal performance, leveraging triggers, defaults, constraints, and indexes. This approach enhances scalability and framework agnosticism.

🔄 Automated DB Backups

Regular database backups are automated via a cron job, ensuring data integrity and recoverability in any eventuality.

🛡️ Security and Privacy

Dedicated to user privacy and security, our application implements robust measures like CSRF, XSS protection, and CORS. Tight API security through RBACs and network isolation safeguards against unauthorized access.

🚦 Rate Limiting

API rate limiting, enforced at the API gateway level (Caddy), prevents misuse and ensures stable application performance.

📬 Message Queues and Brokers for Asynchronous Processing

Asynchronous tasks such as email sending and future image processing are efficiently managed via RabbitMQ and the DramatiQ library, maintaining uninterrupted user experience.

🚀 CI/CD

Our deployment process is automated through GitLab CI/CD, facilitating seamless transitions from staging to production on DigitalOcean Droplets.

📊 User Analytics

Employing Plausible for user analytics allows us to understand user behaviors and make informed decisions, prioritizing privacy.

📁 AWS S3 for File Storage

AWS S3 is our choice for secure and accessible user file storage, ensuring data safety and availability.

🐛 Sentry for Error Tracking and Metrics

Sentry aids in identifying and resolving application errors, offering valuable insights into performance metrics.

🤖 ChatGPT for Development

ChatGPT has played a significant role in developing our application, demonstrating the power of precise prompts in achieving desired outcomes and fostering a deeper understanding of our technology stack.

High Level System Design (HLD)

OnRoad Architecture