This repository contains the source code for the Hack4Impact-UMD Application Portal. The interface includes features for applicants to submit and view the status of their applications, and features to make reviewing applications more efficient for club members.
In addition, the project is integrated with Professor, our autograder service for asynchronously testing engineering assessments in isolation.
- Framework: React
- Build Tool: Vite
- Language: TypeScript
- Styling: Tailwind CSS
- UI Components: shadcn/ui, Radix UI
- Data Fetching: TanStack Query
- Routing: React Router
- Schema Validation: Zod
- Runtime: Node.js
- Framework: Express
- Platform: Firebase (Cloud Functions, Firestore, Authentication, Storage)
- Language: TypeScript
- Schema Validation: Zod
- Task Queue: Cloud Tasks
frontend/
├── public/ # Static assets
└── src/
├── components/ # Reusable React components
├── config/ # Firebase and React Query configuration
├── contexts/ # React contexts for state management
├── hooks/ # Custom React hooks
├── lib/ # Utility functions
├── pages/ # Top-level page components
├── services/ # Services for interacting with the backend
├── types/ # TypeScript type definitions
└── utils/ # Miscellaneous utility functions
backend/
└── functions/
├── src/
│ ├── middleware/ # Express middleware
│ ├── models/ # Data models
│ ├── routes/ # API routes
│ ├── types/ # TypeScript type definitions
│ └── utils/ # Utility functions
└── lib/ # Compiled JavaScript code
- Navigate to the
frontenddirectory:cd frontend - Install dependencies:
npm install
- Run the development server:
npm run dev
For more information on fetching data from the backend, see the Data Fetching Guide.
For instructions on setting up the Firebase emulators, see the Firebase Emulator Setup Guide.
- Navigate to the
backend/functionsdirectory:cd backend/functions - Install dependencies:
npm install
- Build the project:
npm run build
- Run the Firebase emulators:
npm run serve
Note: Some of these may be outdated
| Name | Role | Contact | |
|---|---|---|---|
| Ramy Kaddouri | Tech Lead | Slack | TODO |
| Lance Uymatiao | Tech Lead | Slack | lanceu0128@gmail.com |
