Skip to content

Latest commit

 

History

History
83 lines (51 loc) · 2.8 KB

README.md

File metadata and controls

83 lines (51 loc) · 2.8 KB

Laddy

Ladders consisting of Codeforces problems for your rating.

Screenshot

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

  1. Install PostgreSQL and Redis on your computer.
  2. Add a PostgresSQL user with the desired username and no password. (You can change what these values are in the ormconfig.js)
  3. 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)
  • 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.