Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tetiewastaken/advent-of-codeclub
High Seas advent calendar
https://github.com/tetiewastaken/advent-of-codeclub
advent hack-club high-seas vercel website
Last synced: 6 days ago
JSON representation
High Seas advent calendar
- Host: GitHub
- URL: https://github.com/tetiewastaken/advent-of-codeclub
- Owner: TetieWasTaken
- Created: 2024-11-29T16:04:13.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2024-12-30T22:04:52.000Z (about 1 month ago)
- Last Synced: 2024-12-30T22:29:46.135Z (about 1 month ago)
- Topics: advent, hack-club, high-seas, vercel, website
- Language: TypeScript
- Homepage: https://advent-of-codeclub.vercel.app
- Size: 5.08 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Security: SECURITY.md
Awesome Lists containing this project
README
Built with ❤️ for High Seas 2024-2025
![]()
Advent of Codeclub is an advent calendar made for a (dutch!) coding club at school. It is built with
Next.js,
React,
Tailwind CSS, and
TypeScript. It uses
Firebase for authentication and
Firestore for the database.
## Pages and Features
### Main Page (/)
- Displays every day of the advent calendar up to the current day
- Shows whether the user has submitted a solution for the day
- Shows whether the solution was correct or not
- Shows the user's username in the top right corner
- An expanded view of the challenge can be opened by clicking on the challenge, which shows the full challenge description, the user's solution, if it was correct, and additionally a note from the admin
![]()
### Submit Page (/submit?id=)
- Allows the user to submit a solution for the selected challenge
- Submissions can be submitted as text or as a file (using Vercel glob), with an additional field for comments
- The user can only submit one solution per challenge
- The user can only submit solutions for challenges that have already been released
### Authentication Page (/auth)
- Allows the user to sign in by email and password
- Uses Firebase authentication to sign in and sign out, with email verification
- The user can only access any of the other pages when signed in
- If already signed in, the user can return or sign out
![]()
![]()
![]()
### Admin Page (/admin)
- Allows the admin to view all submissions for all challenges from all users
- The admin can view the user's solution, comments, and decide whether the solution was correct with an optional note
- The admin can also view the user's firebase ID, email, verification status, and dates of creation, last sign-in and last seen
- The admin page is only accessible to users with admin privileges, provided in the environment variables and uses JWT for authentication
## Building locally
To build the project locally, you need to have Deno installed. See the [Deno installation guide](https://docs.deno.com/runtime/getting_started/installation/) for more information.
1. Clone the repository
2. Set up the environment variables in a `.env` file in the root directory
You need to set the following environment variables:
- Vercel blob token
- Firebase API key and configuation
- Firebase service account key
- IDs of admin accounts (separated by commas)
- JWT secret key3. Run `deno run dev` in the root directory
4. Open `http://localhost:3000` in your browserAll rights to brand logos belong to their respective owners. This project is not affiliated with any of the brands mentioned above.