AlgoBoard - algoboard.org
π Algo Board is a website to promote friendly competition for solving algorithmic coding problems. Algo Board lets you host weekly / monthly competitions for your friends, clubs, and other organizations.
There are a few reasons I work on this project:
- The primary goal is to help friends and myself improve at programming problems. I've gone from ~10 problems solved to >600 problems solved since I built this website. This website was the main way I encouraged myself to continue learning.
- The secondary reason is that it's really useful to have a website I can test stuff out with. I've tested different auth methods, different database designs, different deployment setups, and more. Having a website with actual data that is already hosted is a great way for me to put my ideas into practice and have a "sandbox" of sorts that I can modify at any time.
The backend is built using FastAPI and Python.
You will need a .env file in the backend directory that at least defines these values. These aren't yet used for Google OAuth.
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
SECRET_KEY=
REDIRECT_URL=
JWT_SECRET_KEY=
FASTAPI_SECRET_KEY=
FRONTEND_URL=Create the virtual environment
python3 -m venv .venvEnter the virtual environment
source .venv/bin/activate
I usually call my virtual environment either .venv or more frequently just venv
Install dependencies with:
pip install -r requirements.txt
Kronicler uses Ruff for formatting.
You can format all Python files with:
ruff format *.py
You can also check that they have the right format with:
ruff check *.py
The frontend is built using React and TypeScript.
npm installnpm run start