Git Product home page Git Product logo

laddy's Introduction

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.

laddy's People

Contributors

ironsoul0 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.