Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 39 additions & 29 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,32 +1,41 @@
# Splitt
# 🛺 Splitt

Auto ride-sharing for IIIT Jabalpur students. Split auto fares with batchmates going the same way.

## How it works
## ⚙️ How it works

Two students both heading to the railway station at 10am shouldn't each pay ₹80 for a separate auto. Splitt connects them.

1. **Post a ride** — you're booking an auto and have spare seats. Set the destination, departure time, and fare per head.
2. **Post an intent** — you need a ride but don't have one yet. Set where you want to go and your time window.
3. **Match** — Splitt automatically finds rides that fit your intent (and intents that fit your ride). Both parties get a real-time notification.
4. **Confirm** — both sides confirm the match. A seat is reserved atomically.
5. **Connect** — once both confirm, each other's WhatsApp number is revealed.
1. **Post a ride** — Add info if have spare seats.
2. **Post an intent** — request for a ride.
3. **Match** — Splitt finds the intended rides automatically.
Comment on lines +9 to +11
4. **Confirm** — both users approve the match.
5. **Connect** — WhatsApp numbers are revealed after confirmation.

Only `@iiitdmj.ac.in` Google accounts can sign in.

## Stack
## 🛠️ Tech Stack

| | |
| --------- | -------------------------------------------------------------------- |
| Frontend | React 18, Vite, TailwindCSS, TanStack Query, React Router v6 |
| Backend | Node.js 20, Express, Prisma, PostgreSQL |
| Real-time | Server-Sent Events |
| Auth | Google Identity Services (ID token flow — no client secret needed) |
| Infra | Docker (local), Render (backend), Vercel (frontend), Neon (database) |
| | |
| ------------- | ------------------------------------------------------------------------------------ |
| **Frontend** | **React 18**, **Vite**, **TailwindCSS**, **TanStack Query**, **React Router v6** |
| **Backend** | **Node.js 20**, **Express**, **Prisma**, **PostgreSQL** |
| **Real-time** | **Server-Sent Events (SSE)** |
| **Auth** | **Google Identity Services** _(ID token flow — no client secret needed)_ |
| **Infra** | **Docker** (local), **Render** (backend), **Vercel** (frontend), **Neon** (database) |
Comment on lines +19 to +25

## Getting started
## 🚀 Getting Started

**Prerequisites:** Node.js 20+, Docker Desktop
### Prerequisites

Before you begin, make sure you have:

- **Node.js 20+**
- **Docker Desktop**

### Setup

Run the following commands in order:

```bash
# Install all workspace dependencies
Expand All @@ -46,22 +55,23 @@ npm --workspace backend run db:seed
# Start backend (:3000) and frontend (:5173)
npm run dev:backend
npm run dev:frontend

```

Open [http://localhost:5173](http://localhost:5173), click **Dev Login**, and you're in.
### Launch the App

Once both the backend and frontend servers are running, open:

- **http://localhost:5173**

For Google OAuth setup and the full command reference see [docs/SETUP.md](docs/SETUP.md).
Then click **Dev Login** to access the application.

## Contributing
## 🤝 Contributing

Read [docs/CONTRIBUTING.md](docs/CONTRIBUTING.md) before opening a PR.
Open issues are tracked in [CLEANUP.md](CLEANUP.md) — pick one and claim it.
- Before opening any PR make sure to read **[docs/CONTRIBUTING.md](docs/CONTRIBUTING.md)**.

## Docs
## 📚 Docs

| | |
| -------------------------------------------- | ---------------------------------------------------------------- |
| [docs/SETUP.md](docs/SETUP.md) | Local setup, Google OAuth config, all dev commands |
| [docs/DATA_SHAPES.md](docs/DATA_SHAPES.md) | Every API endpoint with request and response examples |
| [docs/CONTRIBUTING.md](docs/CONTRIBUTING.md) | Branch naming, commit format, PR process |
| [CLEANUP.md](CLEANUP.md) | Features not yet built — good place to find something to work on |
- Refer **[docs/SETUP.md](docs/SETUP.md)** — for Local setup, Google OAuth config, all dev commands
- Refer **[docs/DATA_SHAPES.md](docs/DATA_SHAPES.md)** — for Every API endpoint with request and response examples
- Refer **[docs/CONTRIBUTING.md](docs/CONTRIBUTING.md)** — for Branch naming, commit format, PR process
Comment on lines +75 to +77
1 change: 0 additions & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading