A mobile app that helps university students share dining points.
- Frontend (mobile): Expo Router (React Native)
- Frontend + API (web): Next.js (
apps/dashboard) - Database: Neon (serverless Postgres) + Drizzle ORM
- Auth: Supabase Auth with Google OAuth
- Hosting: Vercel
- External: GET Tools API (school point system)
- Node.js 20+
- npm or yarn
- Expo CLI
- iOS Simulator (Mac) or Android Emulator
-
Clone the repository
-
Install dependencies:
npm install
-
Copy
.env.exampleto.env.localand fill in your credentials:cp .env.example .env.local
Start the mobile app:
npm run mobile:devThen press:
ifor iOS simulatorafor Android emulatorwfor web
Start the dashboard app:
npm run dashboard:dev -- -p 3001Route map (dashboard app):
/-> public landing page/app-> Expo web app (same domain)/admin/login-> admin login/admin-> admin dashboard/api/*-> backend API routes
Deploy dashboard preview:
npm run dashboard:deployDeploy dashboard production:
npm run dashboard:deploy:prodslugswap/
├── apps/
│ ├── mobile/ # Expo mobile app
│ └── dashboard/ # Next.js dashboard + API routes
├── db/ # Drizzle schema + migrations
├── scripts/ # Project scripts
└── .github/workflows/ # CI/CD workflows
landing-pages-react/ stays as a design/reference workspace and is not used for production routing.
See slugswap-release.md for the detailed release plan.
Current Focus: Release 1
- Donor onboarding with monthly preferences
- Requester weekly allowance visibility
- Claim code generation and redemption
- Basic impact and history views
For questions, issues, or contribution guidance, contact the development team.