A Next.js + Firebase application for managing VIT Cyscom club FFCS (Fully Flexible Credit System) activities. This portal helps students select departments, join projects, submit contributions, and tracks points on a leaderboard.
- Google Authentication (restricted to @vitstudent.ac.in emails)
- Department selection with seat limits
- Project joining and reviews
- Contribution submission with admin verification
- Points system and leaderboard
- Admin panel for verification and management
- Superadmin controls for system configuration
- Frontend: Next.js, TypeScript, Tailwind CSS
- Backend: Firebase (Authentication, Firestore, Storage)
- Deployment: Vercel/Firebase Hosting
- Node.js (v14+ recommended)
- npm or yarn
- Firebase account and project
- Clone the repository
git clone https://github.com/your-username/cyscom-ffcs.git
cd cyscom-ffcs- Install dependencies
npm install- Configure Firebase
- Create a Firebase project in the Firebase Console
- Enable Authentication with Google provider
- Enable Firestore Database
- Enable Storage
- Add a web app to your project and get the configuration
- Add the configuration to
.env.localfile (use.env.exampleas a template)
- Run the development server
npm run dev- Deploy Firebase rules and indexes
npm install -g firebase-tools
firebase login
npm run firebase:rules- Push your code to GitHub
- Import the project in Vercel
- Configure environment variables in Vercel dashboard
- Deploy
- Build the Next.js app
npm run build
npm run export- Deploy to Firebase Hosting
firebase deploy --only hosting- Setup Google Authentication provider
- Restrict to domain:
vitstudent.ac.in
- Database structure is defined in the security rules
- Indexes are provided in
firestore.indexes.json
- Used for contribution image uploads
- CORS configuration included in
firebase.json
/pages: Next.js pages (including API routes)/lib: Utility functions including Firebase helpers/styles: Global CSS and Tailwind configuration/types: TypeScript type definitions/scripts: Helper scripts, including seeding data
- Students sign in with Google (@vitstudent.ac.in account)
- Select exactly two departments (with seat limits)
- Join a project (max 4 members per project)
- Submit contributions with images
- Admins verify contributions and award points
- Leaderboard tracks top contributors
MIT