The all-in-one event platform that'll make you ghost Google Forms forever 👻💔
Steves is the event management solution that finally lets your campus events pass the vibe check. No more tab-hoarding between Google Forms, spreadsheets, Drive, and Linktree. We've packed everything event organizers need into one streamlined system designed by students who were tired of doing things the hard way.
- User Management & Google OAuth
- Event Creation & Management
- Division Organization
- Application System (Google Forms found deceased)
- Interview Scheduling and Blocking (no more spreadsheet chaos)
- File Attachments (Drive? never met them)
- Additional Links Management (bye-bye Linktree)
- JWT Authentication
- Cursor-based and Offset Pagination
- File Uploads to Cloudflare R2 (where your files aren't gaslit by Drive storage limits)
- ⏳ Real-Time Interview Schedules
- ⏳ Notification System
- ⏳ Frontend UI (yes, this is just the API—wait till you see the glow up)
| Tech | Why It's Actually Superior? |
|---|---|
| TypeScript | No more "undefined is not a function" trauma |
| NestJS | Backend framework that actually respects your mental health |
| TypeORM | Database whisperer |
| PostgreSQL | Where your data thrives instead of just surviving |
| JWT | Gatekeeping, but make it secure |
| Docker | "Works on my machine" who? |
| Cloudflare R2 | Cloud storage that doesn't need a premium subscription |
- Docker
- Cloudflare R2 account (using the Free-Tier because we're all on that student budget) 💸
-
Clone this repo
git clone https://github.com/coomico/steves-api.git cd steves-api -
Create
.envfile with variables like those in.env.example -
First-time deployment
# Make sure NODE_ENV=development in docker-compose.yaml docker compose up -d -
Set up Cloudflare R2
- Log into your Cloudflare dashboard
- Navigate to R2 Object Storage Overview
- Click a bucket named
steves-public-bucketand click "Settings" - Enable "Public access" under R2.dev subdomain.
- Copy the
.r2.devURL that appears - Paste this URL in your
.envfile for theR2_DEV_PUBLIC_BUCKETvariable
-
Level up to production mode
# Stop containers docker compose down # Edit docker-compose.yaml to set NODE_ENV=production # (this is where we get serious) # Restart containers docker compose up -d
API documentation available at /docs when the application is running.