AI-Powered College Management Platform
A comprehensive React Native (Expo) mobile application for college students, featuring intelligent event booking, venue management, and travel coordination powered by Google Gemini AI.
- AI Event Extraction: Describe your event in natural language β AI extracts details
- Smart Venue Booking: Automatically find available venues matching your requirements
- Admin Approval Workflow: Secure request-review-approve system
- Google Calendar Integration: Sync approved events automatically
- Real-time Availability: Check venue occupancy and time slot conflicts
- Carpooling coordination for college events
- Travel route optimization
- Real-time ride matching
- Frontend: React Native (Expo Router)
- Backend: Express.js (Local) + Firebase Functions (Cloud)
- Database: Firebase Firestore
- AI: Google Gemini 1.5 Flash
- Calendar: Google Calendar API
- Authentication: Firebase Auth (SECE Email Only)
- Language: TypeScript
- Node.js 18+ and npm
- Expo CLI
- Firebase Account
- Google Cloud Account (for Gemini AI & Calendar API)
git clone https://github.com/yourusername/NexSync.git
cd NexSync# Frontend
npm install
# Backend
cd backend/local
npm install
cd ../..Frontend - Create NexSync/.env:
EXPO_PUBLIC_API_URL=http://localhost:5000
EXPO_PUBLIC_FIREBASE_API_KEY=your-firebase-api-key
EXPO_PUBLIC_FIREBASE_AUTH_DOMAIN=your-project.firebaseapp.com
EXPO_PUBLIC_FIREBASE_PROJECT_ID=your-project-id
EXPO_PUBLIC_FIREBASE_STORAGE_BUCKET=your-project.appspot.com
EXPO_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your-sender-id
EXPO_PUBLIC_FIREBASE_APP_ID=your-app-idBackend - Create backend/local/.env:
PORT=5000
NODE_ENV=development
FIREBASE_PROJECT_ID=your-project-id
GEMINI_API_KEY=your-gemini-api-key
GOOGLE_CALENDAR_ID=primary
ALLOWED_ORIGINS=http://localhost:8081,http://localhost:19000Firebase Service Account:
- Download
serviceAccountKey.jsonfrom Firebase Console - Place in
backend/functions/serviceAccountKey.json
cd backend/local
npm run seed:venues # Creates 10 sample venues
npm run seed:admins # Creates 10 admin usersTerminal 1 - Backend:
cd backend/local
npm startTerminal 2 - Frontend:
npm startAccess: Open Expo app on your phone or press w for web browser.
NexSync/
βββ app/ # Expo Router screens
β βββ (auth)/ # Login/Signup
β βββ (tabs)/ # Main app tabs
β βββ (eventsync)/ # EventSync module
β βββ (onboarding)/ # Welcome tour
βββ src/
β βββ components/ # Reusable UI components
β βββ services/ # API & Firebase services
β βββ constants/ # Theme & config
β βββ types/ # TypeScript types
βββ backend/
β βββ local/ # Express server (development)
β β βββ routes/ # API routes
β β βββ controllers/ # Business logic
β β βββ services/ # External services
β β βββ scripts/ # Seed scripts
β βββ functions/ # Firebase Functions (production)
βββ assets/ # Images, fonts, icons
- Email Restriction: Only
@sece.ac.inemails allowed - JWT Authentication: Firebase ID tokens
- Admin Role Check: Middleware protection
- Environment Variables: All secrets in
.env(gitignored) - Service Account: Secure Firebase Admin SDK
- User Input: "Need a computer lab for 50 students tomorrow at 2 PM"
- AI Processing: Gemini AI extracts event details
- Venue Search: Backend finds available venues
- Selection: User picks venue or gets AI alternatives
- Submission: Request sent for admin approval
- Approval: Admin reviews and approves
- Calendar Sync: Auto-sync to Google Calendar
- View all pending requests
- Approve/reject with one click
- Atomic venue slot allocation
- Conflict detection
curl http://localhost:5000/healthcurl -X POST http://localhost:5000/api/events/extract \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"userText":"Need lab for 50 students tomorrow"}'See backend/local/README.md for complete API reference.
Key Endpoints:
POST /api/events/extract- AI event extractionPOST /api/events/findAvailable- Find venuesPOST /api/events/submitRequest- Submit for approvalPOST /api/admin/approve- Approve requestPOST /api/events/syncCalendar- Google Calendar sync
- Fork the repository
- Create feature branch (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'Add AmazingFeature') - Push to branch (
git push origin feature/AmazingFeature) - Open Pull Request
This project is licensed under the MIT License.
Developed for GDG Hackathon 2026
- Google Gemini AI
- Firebase Platform
- Expo Framework
- React Native Community
For issues or questions:
- Open an issue on GitHub
- Email: support@nexsync.app
Built with β€οΈ for SECE Students