Algorithmic Contest Platform is a coding platform similar to Codeforces. Users can log in and solve problems from a set of available pools. Additionally, users can participate in coding contests hosted on the platform.
-
User authentication and authorization.
-
Problem-solving from a curated pool of challenges.
-
Participation in real-time coding contests.
-
Judge0 integration for automated code execution and evaluation.
-
Dockerized setup for easy deployment and scaling.
-
Frontend: React, Next.js, Tailwind CSS
-
Backend: Node.js, Next.js, Prisma ORM
-
Database: PostgreSQL
-
CI/CD: GitHub Actions (Optional)
-
Containerization: Docker, Docker Compose
-
Others: Redis, Judge0 API
To get a local copy up and running, follow these steps.
Note: Do not update any of the
.env
files for this particular configuration, except for the mount path for the problems directory.
- Update the
##YOUR_LOCAL_PATH_TO_PROBLEMS_DIR##
in thedocker-compose
file. - Start the services:
docker-compose up -d
- Install dependencies:
pnpm install
- Copy the
.env
files:cp apps/web/.env.example apps/web/.env cp packages/db/.env.example packages/db/.env
- Update the mount path in
apps/web/.env
. - Migrate the database and install the local package:
pnpm dlx turbo db:migrate && yarn install
- Start the development server:
pnpm dev
-
Configure the
judge0.conf
:- Update the
POSTGRES
andREDIS
configurations based on your local databases. - Update the
##YOUR_LOCAL_PATH_TO_PROBLEMS_DIR##
in thedocker-compose
file.
- Update the
-
Start only Judge0 service:
docker-compose up server workers -d
-
Install dependencies:
pnpm install
-
Copy
.env
files and configure them with the same configurations you updated in thejudge0.conf
:cp apps/web/.env.example apps/web/.env cp packages/db/.env.example packages/db/.env
-
Update the mount path in
apps/web/.env
. -
Migrate the database and install the local package:
pnpm dlx turbo db:migrate && yarn install
-
Start the development server:
pnpm dev
Note: If you use Judge0 in Windows, change the mount path to use
\
instead of/
for the mounting ofjudge0.conf
and the mounting of problems.
- Visit
http://localhost:3000
after starting the Docker containers. - Log in or sign up.
- Start solving problems or join ongoing contests.
- View your submission results and rankings in real-time.
The platform is fully containerized with Docker. To get started:
-
Build and start the Docker containers:
docker-compose up --build
-
The platform will be available at
http://localhost:3000
.
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have suggestions for improvements, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE.txt
for more information.
Darshan Chobarkar - @dchobarkar - @barbatos__08 - contact@darshanwebdev.com
Project Link: https://github.com/dchobarkar/algorithmic-contest-platform