Instant student payments, dorm settlements, and campus infrastructure built on Algorand.
Features • Quick Start • Tech Stack • Team
DormPay revolutionizes campus payments with blockchain technology. Split bills with roommates, track expenses in real-time, and transfer funds instantly—all secured by Algorand's Pure Proof-of-Stake consensus.
- Instant Transfers - Zero-latency peer-to-peer payments
- Expense Tracking - Real-time wallet analytics and spending insights
- Voice Alerts - AI-powered transaction notifications via ElevenLabs
- Bill Splitting - Automated dorm and group expense distribution
- DormDrop - Geolocation-based peer discovery for nearby transfers
- Secure Auth - Auth0 integration with Pera Wallet support
- AI Assistant - Gemini-powered chat for transaction help
Make sure you have these installed:
node -v # v18 or higher
npm -v # v9 or higher
mysql --version # MySQL 8.0+git clone https://github.com/devyashrasela/dormpay.git
cd dormpaycd backend
npm installCreate .env file:
cp .env.example .envConfigure your .env:
# Server
PORT=5000
NODE_ENV=development
FRONTEND_URL=http://localhost:5173
# MySQL Database
DB_HOST=localhost
DB_PORT=3306
DB_NAME=campus_wallet
DB_USER=root
DB_PASSWORD=your_password
# Auth0
AUTH0_DOMAIN=your-domain.auth0.com
AUTH0_AUDIENCE=your-api-audience
# Algorand TestNet (defaults work)
ALGOD_SERVER=https://testnet-api.algonode.cloud
ALGOD_PORT=443
INDEXER_SERVER=https://testnet-idx.algonode.cloud
INDEXER_PORT=443
# Gemini AI
GEMINI_API_KEY=your_gemini_key
# ElevenLabs
ELEVENLABS_API_KEY=your_elevenlabs_key
# Email (optional)
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=your_email@gmail.com
SMTP_PASS=your_app_passwordCreate database and run migrations:
mysql -u root -pCREATE DATABASE campus_wallet;
EXIT;npm run db:migrate
npm run devBackend runs on http://localhost:5000
Open a new terminal:
cd frontend
npm installCreate .env file:
cp .env.example .envConfigure your .env:
VITE_AUTH0_DOMAIN=your-domain.auth0.com
VITE_AUTH0_CLIENT_ID=your-client-id
VITE_AUTH0_AUDIENCE=your-api-audience
VITE_API_URL=http://localhost:5000
VITE_ALGOD_SERVER=https://testnet-api.algonode.cloudStart the dev server:
npm run devFrontend runs on http://localhost:5173
macOS (Homebrew):
brew install mysql
brew services start mysql
mysql_secure_installationUbuntu/Debian:
sudo apt update
sudo apt install mysql-server
sudo systemctl start mysql
sudo mysql_secure_installationWindows: Download from MySQL Downloads
- Sign up at auth0.com
- Create a new application (Single Page Application)
- Create an API
- Copy Domain, Client ID, and Audience to your
.envfiles
No setup needed! We use public nodes:
- Algod:
https://testnet-api.algonode.cloud - Indexer:
https://testnet-idx.algonode.cloud
Get test ALGO from TestNet Dispenser
- Get API key from Google AI Studio
- Add to backend
.envasGEMINI_API_KEY
- Sign up at elevenlabs.io
- Get API key from dashboard
- Add to backend
.envasELEVENLABS_API_KEY
- React 19 - UI framework
- Vite - Build tool
- TailwindCSS - Styling
- Zustand - State management
- React Router - Navigation
- Pera Wallet - Algorand wallet integration
- Auth0 - Authentication
- Node.js + Express - API server
- Sequelize - ORM
- MySQL - Database
- AlgoSDK - Algorand blockchain integration
- Gemini AI - Conversational AI
- ElevenLabs - Voice synthesis
- Swagger - API documentation
- Algorand - Layer-1 blockchain
- Pure Proof-of-Stake - Consensus mechanism
- TestNet - Development network
Once the backend is running, visit:
http://localhost:5000/api/docs
Interactive Swagger UI with all endpoints documented.
dormpay/
├── backend/
│ ├── src/
│ │ ├── config/ # Configuration files
│ │ ├── controllers/ # Route controllers
│ │ ├── middleware/ # Auth & validation
│ │ ├── models/ # Sequelize models
│ │ ├── routes/ # API routes
│ │ ├── utils/ # Helper functions
│ │ └── server.js # Entry point
│ ├── .env.example
│ └── package.json
│
├── frontend/
│ ├── src/
│ │ ├── api/ # Axios config
│ │ ├── assets/ # Images & icons
│ │ ├── components/ # React components
│ │ ├── hooks/ # Custom hooks
│ │ ├── pages/ # Page components
│ │ ├── store/ # Zustand stores
│ │ ├── utils/ # Utilities
│ │ ├── App.jsx
│ │ └── main.jsx
│ ├── .env.example
│ └── package.json
│
└── README.md
Modern, high-octane design showcasing DormPay's capabilities
Real-time wallet balance, transaction history, and analytics
Effortless group expense management with automated distribution
Gemini-powered conversational interface for transaction help
We welcome contributions! Feel free to:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Built at AceHack 5.0
- Powered by Algorand Foundation
- Voice by ElevenLabs
- AI by Google Gemini
- Auth by Auth0