Hi Coders, ACD Ladders empowers user to enhance their programming skills. It allows users to efficiently filter Codeforces problems based on various criteria, providing a more personalized approach to problem selection.
ACD Ladders employs advanced techniques such as maps, sets, pointers and string algorithms . This seamless integration of these programming fundamentals enhances the app's efficiency in filtering problems.
To get a local copy up and running, follow these simple steps.
Make sure you have the following prerequisites installed on your machine:
- Node.js: Next.js is built on top of Node.js, so you need to have Node.js installed. You can download and install it from nodejs.org.
-
Clone the repository:
git clone https://github.com/himanshu3889/ACD-Ladders/
-
Navigate to the project directory:
cd ACD-Ladders -
Install dependencies:
npm install
The following environment variables are required for configuring the project:
- NEXT_PUBLIC_BASE_URL
- Description: Specifies the base URL for the project.
- Example:
http://localhost:3000
To set up the required environment variables, follow these steps:
-
Open your project's codebase.
-
Locate the configuration file or the place where environment variables are set (.env.development).
-
Add the following lines to set the required variables:
NEXT_PUBLIC_BASE_URL=http://localhost:3000
Once the installation is complete, you can run the development server:
npm run devThis will start the Next.js development server, and you can view your app by visiting http://localhost:3000 in your web browser.
-
Enter Criteria: Specify your filtering criteria, such as difficulty, Index, SolvedBy, Contest Type, tags, OR (problem will have atleast one of the tag present instead of all) / Exclude (problems will not have any of the selected tags present) & problem of the status in the provided input fields.
-
Apply Filters: Click the "Apply Filters" button to filter Codeforces problems based on your specified criteria.
-
Enter Your Codeforces ID (Optional): By entering the Codeforces ID you can see status of the problems in the problems sidebar (Grey : unsolved, Green : Solved & Red : Attempted) and user can filter the problems by their required problem status.
-
Sort by Id: Click on the Id(in table head) to sort filtered problems by Id.
-
Sort by SolvedBy(for cf_filter): Click on the SolvedBy(in table head) to arrange filtered problems by solved count.
-
Sort by Difficulty: Click on the Difficulty(in table head) to arrange filtered problems by difficulty level.
Note: User can search problems only on problems id and problems name fields.
-
Search on All Problems: Click on the
Allbutton to search on all problems instead filtering problems. -
Search with Match Case : Click on the
Aabutton to search problems with match case e.g. world and WorLd will be same. -
Search only whole word : Click on the
Wbutton to search problems with complete word e.g. HelloWorld will not include if user search world but in Hello World will include if user search world .
-
Toggle and Clear Tags: can toggle the tags and clear the tags
-
Saved Filters: can rename, delete and save the filter
-
Toggle Filter SideBar: can toggle the filter sidebar by cliking on the fixed button on the right hand side of the mid screen
-
Notifications: showing notifications for various activities
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 a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- 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.