Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
ad056a1
Add example VSCode Configurations & Firebase files
IAmThe2ndHuman Sep 20, 2025
5c1c236
hotfix: Update login language
IAmThe2ndHuman Sep 20, 2025
df881f8
Refactor file structure
IAmThe2ndHuman Sep 27, 2025
a10bd1b
Fully restructure project
IAmThe2ndHuman Oct 4, 2025
229d7c4
Remove all references to Flutter
IAmThe2ndHuman Oct 18, 2025
59e618a
Add react stub
IAmThe2ndHuman Oct 18, 2025
deb8b0d
Configure frameworks
IAmThe2ndHuman Oct 18, 2025
afae98e
Add sample UI
IAmThe2ndHuman Oct 18, 2025
e29aad3
Implement login UI
IAmThe2ndHuman Oct 19, 2025
cf2bfae
Add sidebar for main screen
IAmThe2ndHuman Oct 19, 2025
99e907c
Add mobile support for main screen sidebar
IAmThe2ndHuman Oct 20, 2025
b4e1e83
Add firebase support
IAmThe2ndHuman Oct 20, 2025
c5e69aa
Add rudimentary oauth reimplementation
IAmThe2ndHuman Oct 20, 2025
1545b85
Improve auth flow
IAmThe2ndHuman Oct 20, 2025
e637cee
Add redirect on login
IAmThe2ndHuman Oct 20, 2025
c3ef78a
Clean up code
IAmThe2ndHuman Oct 20, 2025
af058c3
Redesign callback code
IAmThe2ndHuman Nov 28, 2025
666bbb9
Add new syne mono font
IAmThe2ndHuman Nov 28, 2025
80d4a6d
Update firestore rules
IAmThe2ndHuman Nov 28, 2025
c68165b
Add atom for user management
IAmThe2ndHuman Nov 28, 2025
67bd86a
Add user data to homepage
IAmThe2ndHuman Nov 28, 2025
6e8e754
Update spreadsheet search to use header names
IAmThe2ndHuman Dec 20, 2025
1a31b4b
Add adaptive UI
IAmThe2ndHuman Dec 20, 2025
71a2e9e
Refactor and add schedule UI
IAmThe2ndHuman Dec 20, 2025
4fe2efc
Add comments and remove unused imports
IAmThe2ndHuman Dec 20, 2025
30319c8
Add stub organizer page and a way to switch in dbg mode
IAmThe2ndHuman Dec 21, 2025
f99a043
Add Event Config type declarations
IAmThe2ndHuman Dec 21, 2025
1ff7c90
Add rudimentary documentation
IAmThe2ndHuman Dec 21, 2025
384d49b
Add stub organizer view
IAmThe2ndHuman Dec 22, 2025
81cabef
Add announcement functionality
IAmThe2ndHuman Dec 22, 2025
77c5676
Add listening for event config
IAmThe2ndHuman Dec 23, 2025
0dc03eb
Add stub announcements page
IAmThe2ndHuman Dec 23, 2025
eec70d3
Add dynamic media query hook
IAmThe2ndHuman Dec 23, 2025
dc6cab5
Add announcements view
IAmThe2ndHuman Dec 23, 2025
e069513
Add new event atoms
IAmThe2ndHuman Dec 24, 2025
64617ce
Add announcement deletion
IAmThe2ndHuman Dec 24, 2025
76542cc
Rename media query file
IAmThe2ndHuman Dec 24, 2025
0a00c45
Set up resource atoms
IAmThe2ndHuman Dec 24, 2025
4db7b34
Add resource manager UI
IAmThe2ndHuman Dec 24, 2025
fc53f31
Add resource viewing
IAmThe2ndHuman Dec 24, 2025
9b45c80
Add MD to sidebar
IAmThe2ndHuman Dec 25, 2025
b4106da
Add countdown atom
IAmThe2ndHuman Dec 25, 2025
3996392
Refactor event atoms
IAmThe2ndHuman Dec 25, 2025
f8a4260
Add countdown UI
IAmThe2ndHuman Dec 25, 2025
5d80434
Add dynamic countdown messages
IAmThe2ndHuman Dec 25, 2025
e3f012e
Add items to feed
IAmThe2ndHuman Dec 25, 2025
4354406
Add team data structure to backend
IAmThe2ndHuman Dec 29, 2025
346490c
Add track editing to frontend and hardcode view into resources
IAmThe2ndHuman Dec 29, 2025
d845598
Add UI for team registration
IAmThe2ndHuman Jan 2, 2026
f397e19
Add team registration autocomplete
IAmThe2ndHuman Jan 2, 2026
4b4bc2e
Add (untested) backend team creation func
IAmThe2ndHuman Jan 3, 2026
288202a
Add dbg func to create users
IAmThe2ndHuman Jan 3, 2026
9684dd4
Add team registration func to frontend
IAmThe2ndHuman Jan 3, 2026
8c0d32b
Add frontend team data sync
IAmThe2ndHuman Jan 3, 2026
6d68a50
Add listening auth user data system
IAmThe2ndHuman Jan 4, 2026
ae120e7
add frontend team verification view for organizers
IAmThe2ndHuman Jan 4, 2026
268eed0
Add cool approved team view
IAmThe2ndHuman Jan 4, 2026
d00bba8
Add minor UI tweaks
IAmThe2ndHuman Jan 4, 2026
2c88cc0
Add REST endpoints for RFID
IAmThe2ndHuman Jan 15, 2026
9f52ef4
Add backend for resume uploading
IAmThe2ndHuman Jan 16, 2026
bd1f5ca
Add resume upload
IAmThe2ndHuman Jan 17, 2026
c50de47
UI cleanup
IAmThe2ndHuman Jan 17, 2026
636454c
Add UI touchups
IAmThe2ndHuman Jan 17, 2026
148f619
Add live notifications
IAmThe2ndHuman Jan 17, 2026
94e647f
Add syncing of schedule
IAmThe2ndHuman Jan 17, 2026
922920b
Add UI tweaks
IAmThe2ndHuman Jan 17, 2026
838d580
Add setup guide
IAmThe2ndHuman Jan 19, 2026
1d01c3b
Fix tsc linter errors
IAmThe2ndHuman Jan 19, 2026
531286b
Add dev preview workflow
IAmThe2ndHuman Jan 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
File renamed without changes.
25 changes: 25 additions & 0 deletions .github/workflows/firebase-hosting-dev.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Deploy to Firebase Hosting on dev
on:
push:
branches:
- dev
jobs:
build_and_deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: Set up Node.js
uses: actions/setup-node@v5
with:
node-version: 'lts/*'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build with Vite
run: npm run build
- uses: FirebaseExtended/action-hosting-deploy@v0
with:
repoToken: ${{ secrets.GITHUB_TOKEN }}
firebaseServiceAccount: ${{ secrets.FIREBASE_SERVICE_ACCOUNT_HACKNCSU_TODAY }}
channelId: dev
projectId: hackncsu-today
28 changes: 28 additions & 0 deletions .github/workflows/firebase-hosting-merge.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# This file was auto-generated by the Firebase CLI
# https://github.com/firebase/firebase-tools

name: Deploy to Firebase Hosting on merge
on:
push:
branches:
- master
jobs:
build_and_deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: Set up Node.js
uses: actions/setup-node@v5
with:
node-version: 'lts/*'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build with Vite
run: npm run build
- uses: FirebaseExtended/action-hosting-deploy@v0
with:
repoToken: ${{ secrets.GITHUB_TOKEN }}
firebaseServiceAccount: ${{ secrets.FIREBASE_SERVICE_ACCOUNT_HACKNCSU_TODAY }}
channelId: live
projectId: hackncsu-today
28 changes: 28 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
dist
dist-ssr
*.local

# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?

.firebase/*
.venv
service-account.json
77 changes: 76 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,78 @@
# hackncsu-today

Comprehensive software suite to manage Hack_NCState. Currently under development.
## Setup guide

i hope this all works if not let me know

### Prerequisites

- `service-account.json` file with access to the Google Sheets API (let me know if you need access)
- Your Discord username in the Registration Google Sheet (so you can log in)

### 1. Tooling

1. Install [Firebase CLI](https://firebase.google.com/docs/cli#install_the_firebase_cli)
2. Install Python 3.11 or higher
3. Install Node.js
4. Clone this repository

### 2. Configuration

1. Create a Python virtual environment:

```bash
python -m venv .venv
```

2. Activate the virtual environment:
- On Windows:

```powershell
.venv\Scripts\activate
```

- On macOS/Linux:

```bash
source .venv/bin/activate
```

3. Install the required Python packages:

```bash
pip install -r requirements.txt
```

4. Install the required Node.js packages:

```bash
npm install
```

5. This isn't best practice but we're using a service account file to allow you to access the spreadsheet data locally. Let me know and I'll share the file with you. Place it in the root of the project as `service-account.json`.

### 3. Running Locally

1. Run the backend emulator suite:

- On Windows:

```powershell
$env:GOOGLE_APPLICATION_CREDENTIALS="$PWD\service-account.json"
firebase emulators:start --project=hackncsu-today
```

- On macOS/Linux:

```bash
export GOOGLE_APPLICATION_CREDENTIALS="$PWD/service-account.json"
firebase emulators:start --project=hackncsu-today
```

2. Run the frontend:

```bash
npm run dev
```

3. Open your browser and navigate to `http://localhost:8080` to see the application running locally.
34 changes: 34 additions & 0 deletions biome.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
{
"$schema": "https://biomejs.dev/schemas/2.2.6/schema.json",
"vcs": {
"enabled": false,
"clientKind": "git",
"useIgnoreFile": false
},
"files": {
"ignoreUnknown": false
},
"formatter": {
"enabled": true,
"indentStyle": "tab"
},
"linter": {
"enabled": true,
"rules": {
"recommended": true
}
},
"javascript": {
"formatter": {
"quoteStyle": "double"
}
},
"assist": {
"enabled": true,
"actions": {
"source": {
"organizeImports": "on"
}
}
}
}
22 changes: 22 additions & 0 deletions components.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"$schema": "https://ui.shadcn.com/schema.json",
"style": "new-york",
"rsc": false,
"tsx": true,
"tailwind": {
"config": "",
"css": "src/index.css",
"baseColor": "neutral",
"cssVariables": true,
"prefix": ""
},
"iconLibrary": "lucide",
"aliases": {
"components": "@/components",
"utils": "@/lib/utils",
"ui": "@/components/ui",
"lib": "@/lib",
"hooks": "@/hooks"
},
"registries": {}
}
60 changes: 60 additions & 0 deletions firebase.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
{
"functions": [
{
"source": "functions",
"codebase": "default",
"ignore": [
"venv",
".git",
"firebase-debug.log",
"firebase-debug.*.log",
"*.local"
],
"runtime": "python313"
}
],
"emulators": {
"auth": {
"port": 9099
},
"functions": {
"port": 5001
},
"firestore": {
"port": 5500
},
"ui": {
"enabled": true
},
"singleProjectMode": true,
"hosting": {
"port": 5000
},
"storage": {
"port": 9199
}
},
"firestore": {
"database": "(default)",
"location": "nam5",
"rules": "firestore.rules",
"indexes": "firestore.indexes.json"
},
"hosting": {
"public": "dist",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
]
},
"storage": {
"rules": "storage.rules"
}
}
71 changes: 0 additions & 71 deletions firebase/.gitignore

This file was deleted.

37 changes: 0 additions & 37 deletions firebase/firestore.rules

This file was deleted.

Loading