π Communecar
Communecar is a carpooling platform designed for community-based ride-sharing. Users can search, create, and join rides based on the communities they belong to. Built with a modern tech stack, Communecar emphasizes speed, performance, and seamless user experience.
π οΈ Tech Stack
Backend (BE) - NodeJS
- Express: Fast, minimalist web framework
- GraphQL: API query language for interacting with data
- Swagger: API documentation and testing
- Prisma: Next-generation ORM for database interaction
- Supabase (Postgres): Backend-as-a-Service built on top of PostgreSQL
Frontend (FE) - React
- Vite: Lightning-fast frontend tooling
- MUI: React components for faster and easier web development
- Leaflet: Interactive maps
- React Query: Data-fetching and server-state management
- Axios: Promise-based HTTP client
Integrations π
DevOps π οΈ
- CI/CD: Vercel for deployment and continuous integration
- Docker Compose: Container orchestration for local development
π Getting Started
Clone the repo:
git clone https://github.com/CommuneCar/mono-app.git
cd mono-app
If you have Docker installed, we've made it extra easy for you. Once you've configured your .env
variables, run the following command and you should be good to go:
docker-compose up -d
If you don't have Docker installed, please ensure that you have Node.js (v18+) and npm (v10+) installed.
Starting the FE:
cd apps/ui
npm ci
# Create a .env file based on the .env.example file
npm run dev
Starting the BE:
cd apps/BE
npm ci
# Create a .env file based on the .env.example file
npx prisma generate
npm run dev
Once done, the system should be accessible via the following URLs:
Backend
- The backend is powered by Node.js with Express, GraphQL, and Prisma.
- API docs are accessible through Swagger at
/docs
.
- GraphQL playground available at
/graphql
(api) and /graphiql
(ui).
Frontend
- The frontend is a React application bootstrapped with Vite and styled with MUI.
- Maps are rendered using Leaflet, with data from multiple geolocation providers.
Feel free to fork, star β, or give us a good grade π₯πΎ. Letβs make carpooling cool again! ππ