A full-stack web application that helps you systematically revise Codeforces problems using spaced repetition (1-day, 7-day, and 30-day lookbacks).
Tech Stack: React, Express, PostgreSQL, Google OAuth Goal: Turn random problem solving into structured long-term retention.
This project is built to solve a common competitive programming issue: you solve problems, but you don’t actually retain them.
The Codeforces Revision Tracker automatically syncs your solved problems and organizes them into revision windows:
- 1-day
- 7-day
- 30-day
This enforces spaced repetition, helping you remember techniques, patterns, and edge cases instead of forgetting them after one submission.
- Automatic daily sync of solved problems from Codeforces
- Secure authentication using Google OAuth
- Structured revision buckets (1 / 7 / 30 days)
- Persistent storage using PostgreSQL
- Modular Express backend
- Clean React frontend
- React – Frontend UI
- Node.js – Runtime
- Express – Backend framework
- PostgreSQL – Relational database
- Google OAuth – Authentication
Follow these steps to run the project locally.
Make sure you have the following installed:
- Node.js (v18+ recommended)
- npm
- PostgreSQL
- A Google OAuth Client ID
- A Codeforces handle
Update npm:
npm install npm@latest -g- Clone the repository
git clone https://github.com/Harsh-2005d/practiceCF.git- Navigate into the project
cd practiceCF- Install dependencies
npm install- Create a
.envfile in the backend directory
DATABASE_URL=postgresql://user:password@localhost:5432/dbname
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
SESSION_SECRET=your_secret- Run database migrations
npx prisma migrate dev- Start the development server
npm run dev-
Sign in using Google OAuth.
-
Link your Codeforces handle.
-
The system automatically syncs your solved problems daily.
-
Open the revision dashboard to see:
- Problems solved yesterday
- Problems solved 7 days ago
- Problems solved 30 days ago
-
Revisit and practice from your revision queue.
This workflow encourages systematic review instead of one-time problem solving.
- Real-time Codeforces API syncing
- Difficulty filters and problem tagging
- Personal notes per problem
- Revision streaks and analytics dashboard
- Mobile-first UI improvements
- Exportable revision sets
See the open issues for a full list.
Contributions are welcome.
If you want to improve the project:
- Fork the repository
- Create your branch
git checkout -b feature/AmazingFeature- Commit your changes
git commit -m "Add some AmazingFeature"- Push to your branch
git push origin feature/AmazingFeature- Open a Pull Request
Distributed under the project_license. See LICENSE.txt for more information.
Harsh Dahiya Twitter: @twitter_handle Email: email@email_client.com
Project Link: https://github.com/Harsh-2005d/practiceCF
- Codeforces for the platform and API
- Google OAuth for authentication
- The open-source community
