Skip to content

Harsh-2005d/practiceCF

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

90 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Codeforces Revision Tracker

Contributors Forks Stargazers Issues License LinkedIn

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.


Table of Contents


About The Project

Product Screenshot

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.

Key Features

  • 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

Built With

  • React – Frontend UI
  • Node.js – Runtime
  • Express – Backend framework
  • PostgreSQL – Relational database
  • Google OAuth – Authentication

Getting Started

Follow these steps to run the project locally.


Prerequisites

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

Installation

  1. Clone the repository
git clone https://github.com/Harsh-2005d/practiceCF.git
  1. Navigate into the project
cd practiceCF
  1. Install dependencies
npm install
  1. Create a .env file 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
  1. Run database migrations
npx prisma migrate dev
  1. Start the development server
npm run dev

Usage

  1. Sign in using Google OAuth.

  2. Link your Codeforces handle.

  3. The system automatically syncs your solved problems daily.

  4. Open the revision dashboard to see:

    • Problems solved yesterday
    • Problems solved 7 days ago
    • Problems solved 30 days ago
  5. Revisit and practice from your revision queue.

This workflow encourages systematic review instead of one-time problem solving.


Roadmap

  • 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.


Contributing

Contributions are welcome.

If you want to improve the project:

  1. Fork the repository
  2. Create your branch
git checkout -b feature/AmazingFeature
  1. Commit your changes
git commit -m "Add some AmazingFeature"
  1. Push to your branch
git push origin feature/AmazingFeature
  1. Open a Pull Request

License

Distributed under the project_license. See LICENSE.txt for more information.


Contact

Harsh Dahiya Twitter: @twitter_handle Email: email@email_client.com

Project Link: https://github.com/Harsh-2005d/practiceCF


Acknowledgments

  • Codeforces for the platform and API
  • Google OAuth for authentication
  • The open-source community

References


About

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors