Awesome
<p align="center"> <a href="http://laddy.app"> <img width="180" src="./assets/logo.png"> </a> </p> <h1 align="center">Laddy</h1> <p align="center">Ladders consisting of Codeforces problems for your rating.</p>Important: The web app is inspired by A2OJ which is retired by now. All of the ladders content belong to Ahmed Aly.
Idea
Solve Codeforces problems from the ladders that correspond to your rating and improve your skills.
Organized
Join the ladders you want to solve and track your progress.
Beautiful
Clean design with the focus on details.
Setup
Prerequisites
- Install PostgreSQL and Redis on your computer.
- Add a PostgresSQL user with the desired username and no password. (You can change what these values are in the ormconfig.js)
- Create database called
laddy
using the user you have created.
Filling environmental variables
In order to work on Laddy locally, you must assign values to some env. variables both in the client and server folders. This could be done by creating and filling .env
files.
-
Client:
- REACT_APP_GRAPHQL_URI: URL for the GraphQL server. (
http://localhost:4000/graphql
by default)
- REACT_APP_GRAPHQL_URI: URL for the GraphQL server. (
-
Server:
- ACCESS_TOKEN_SECRET: Secret used for signing JWT tokens on the backend.
- APP_URL: Your app base URL. (
http://localhost:3000
by default) - SMTP_LOGIN, SMTP_PASS, SMTP_NAME: Settings for email delivery service. Laddy uses Yandex Mail for this purpose.
Install
git clone https://github.com/ironsoul0/laddy.git
cd laddy
npm install
npm run bootstrap
Run
npm start
Seed data
To seed the database with some test data, use the following command. Be aware that it drops the database first.
npm run fill-data
Contributing
Laddy is an open source project. Feel free to contribute and suggest any improvements. All bugs and issues should be reported to the issues tab.
This repository is a monorepo for both client and server parts of the website. Both client and server are written in TypeScript and use safe type-checking. Client uses React and Apollo, while server uses GraphQL and PostgreSQL database.
Acknowledgements
- Thanks to Ahmed Aly for the creation of A2OJ and generating ladders.
License
This project is open source and available under the MIT License.