Probase is a new project meant to help students run their own math contests. The goal is to improve the math contest scene by creating better math contests for everyone.
Every math contest - from community-driven AoPS mocks, to college-run competitions like CMIMC, and even the IMO - rely on a dedicated team of volunteers committed to making it happen.
But pulling off a successful contest is hard. It takes lots of effort, and there are many ways to mess up. Consider testsolving: it's a crucial step where fresh eyes are needed, and most contests don't have enough volunteers to thoroughly testsolve everything. This leads to issues like AIME I #12, where the correct answer 385 was missed, and the true difficulty was misjudged.
It's especially tough for newcomers trying to start their own contest. That's where Probase comes in!
Probase will be a set of tools and resources for organizers to run top-notch math contests:
- A collaborative space for problem writers and testsolvers to brainstorm, create, and refine their problem proposals. You can see a sneak peek at https://probase.app/c/demo.
- An online contest platform where anyone can host their own contest and participate in others. The goal is to eventually have a steady stream of high-quality problems, like Codeforces but for math.
- Guides and tutorials for contest creators. There are plenty of resources on solving problems, but far fewer on how to come up with them.
- A community hub where problem-writers can collaborate, find testsolvers, and share ideas with each other.
Probase is still in the early stages of development. If you want to help out, you're welcome to join the team! We're using a Discord server to collaborate, just ask me for an invite.
git clone https://github.com/howard36/probase.git
cd probase
npm install
Using Docker is probably easiest. Follow the steps in this guide to set it up.
- Download the latest Docker Desktop release
- Pulling the official Postgres Docker image:
docker pull postgres
- Start a new Docker container running Postgres:
docker run -d --name probase-db -e POSTGRES_PASSWORD=<db-password> -p 5432:5432 postgres
. Make sure to replace<db-password>
with a random password.
cp .env.example .env.local
You'll want to manually edit some of the variables in .env.local
:
- Replace both
DATABASE_URL
andDIRECT_URL
with your Postgres connection string. It should use the same<db-password>
as step 2.3. - Set
NEXTAUTH_SECRET
to another random password.
- Run migrations:
npm run local -- prisma migrate dev
- Seed the database with dummy data:
npm run local -- prisma db seed
npm run dev
The website should now be running at http://localhost:3000
Anyone is welcome to contribute!
TODO: add contribution guidelines