https://github.com/acmutd/officer-database
This is the frontend repository for the ACM Officer Database
https://github.com/acmutd/officer-database
Last synced: 5 months ago
JSON representation
This is the frontend repository for the ACM Officer Database
- Host: GitHub
- URL: https://github.com/acmutd/officer-database
- Owner: acmutd
- Created: 2025-09-26T22:50:19.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2026-01-13T03:16:42.000Z (6 months ago)
- Last Synced: 2026-01-13T06:44:48.218Z (6 months ago)
- Language: TypeScript
- Homepage: https://officer-database.vercel.app
- Size: 3.65 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ACM Officer Database - Frontend
This is the frontend repository for the ACM Officer Database, a comprehensive management platform for ACM officers at UTD.
## Key Features
### Authentication
- Firebase-based login flow
- Protected routes with automatic redirects
- ID token handling for secure API requests
### Officer Management
- View and edit personal profiles (name, photo, academics)
- Track internships with add/edit/delete capabilities
- Manage research experiences
- Update social links (LinkedIn, GitHub, email)
- Resume upload and management
### Directory & Search
- Browse all active officers
- Filter by division and access level
- View archived officer profiles
- Role-based access control
### Data Validation
- All API responses parsed against Zod schemas
- Type-safe query client with React Query
- Endpoint type safety via union types
## Local Development
### Prerequisites
- Node.js (v18 or higher)
- npm or yarn
### Setup
1. Clone the repository
```sh
$ git clone https://github.com/acmutd/officer-database.git
$ cd officer-database
```
2. Install dependencies
```sh
$ npm install
```
3. Build to make sure everything works
```sh
$ npm run build
```
4. Start the development server
```sh
$ npm run dev
```
The app will be available at `http://localhost:3000`
### Scripts
- `npm run dev` - Start development server
- `npm run build` - Build for production (includes TypeScript check)
- `npm run serve` - Preview production build locally
- `npm run test` - Run test suite