The official admin portal for Garuda Hacks 6.0-7.0. The app serves as the main interface for admin and other related capabilities.
This app uses Firebase admin SDK to interact with database directly. This app has some important functionalities such as:
- Managing application: From checking, reviewing, accepting, rejecting, canceling applications of user. The status update by admins is also complete with email send. Consider adjusting email send to be reusable or similar with what
web-beapplication has. - Managing the configuration: such as open-close date for portal, or mentorship platform.
- Team formation: see how team has already forming.
- Speed dating: see which users join which mobile team.
- Table assignments: manually assign hackers into their designated table, configurable for amount of table with different capacity (e.g. 4, 8, etc).
- Check-in: useful for both admin and assigned volunteer at check-in booth, complete with authorship for logging.
- Mentoship: manage or add mentors, promoting or creating account for them.
- Mailing: send dispentation letter for users who requested.
The app is authorized for @garudahacks.com email only. Except for Check-in feature which volunteer with regular email is authorized with custom claim usher in Firebase Auth, but only will able to access /check-in page.
It is a known issue that current arhitecture of the app is not scaleable, especially for team forming that is in registration a typed value rather than by invite link. This cause discrepancy between mobile team app and the actual team forming. Consider improving this so the team get up to date whenever needed, including for linking with submitted project from Devpost, or the table assignment without confusing you as developer or admins who manage it.
-
Frontend
- Next.js 15
- React 19
- TypeScript
- TailwindCSS
- Vercel Analytics
-
Backend
- Firebase Cloud Functions
- Firebase Authentication
- Firebase Firestore
-
Deployment
- Vercel
- Vercel Analytics
- Node.js (v18 or higher)
- npm or yarn
- Firebase account
- Clone the repository
git clone https://github.com/your-username/gh-admin.git
cd gh-admin- Install dependencies
npm install- Set up environment variables
cp .env.example .envFill in your Firebase configuration in .env
- Start development server
npm run devnpm run buildgh-admin/
├── app/ # Next.js app directory
├── components/ # Reusable UI components
├── contexts/ # React context providers
├── lib/ # Utility functions and Firebase config
├── public/ # Static assets
├── static/ # Additional static files
├── .github/ # GitHub workflows and templates
├── firebase.json # Firebase configuration
├── next.config.ts # Next.js configuration
└── tailwind.config.ts # Tailwind CSS configuration
Required environment variables:
NEXT_PUBLIC_FIREBASE_API_KEYNEXT_PUBLIC_FIREBASE_AUTH_DOMAINNEXT_PUBLIC_FIREBASE_PROJECT_IDNEXT_PUBLIC_FIREBASE_STORAGE_BUCKETNEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_IDNEXT_PUBLIC_FIREBASE_APP_IDNEXT_PUBLIC_FIREBASE_MEASUREMENT_ID
-
Fork the repository
-
Create your feature branch (
git checkout -b feat/amazing-feature) -
Make your changes following our commit conventions:
# Format <type>(<scope>): <description> # Examples feat(auth): add Google OAuth login fix(api): resolve proxy configuration docs(readme): update installation steps style(ui): improve button hover states refactor(forms): simplify validation logic test(api): add auth endpoint tests chore(deps): update dependencies
Types:
feat,fix,docs,style,refactor,test,choreScope: optional, indicates the module affected -
Push to the branch (
git push origin feat/amazing-feature) -
Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Made with ❤️ by the Garuda Hacks Team