A simple and lightweight LeetCode tracking application designed to help you stay organized, motivated, and consistent in your problem-solving journey. This project provides an easy way to record the problems you’ve solved, how you solved them, and any notes or strategies you want to remember for future review.
- Track solved problems with problem name, difficulty, tags, and date solved
- Store solution notes so you remember how you solved each question
- Browse, review, and filter completed problems
- Simple, clean interface for adding and viewing entries
- Lightweight backend (Node.js + SQLite)
- Minimal frontend using vanilla HTML/CSS
DATABASE-FINAL-PROJECT-FOLDER/
│
├── .venv/
├── backend/
│ ├── app.js
│ ├── db.sql
│ ├── package.json
│ ├── package-lock.json
│ └── node_modules/
│
└── public/
├── index.html
├── create_post.html
├── post_detail.html
├── posts.html
├── signup.html
└── styles.css
- Node.js
- Express.js
- MySQL (via XAMPP)
- HTML
- CSS
git clone https://github.com/YOUR_USERNAME/leetcode-tracker.git
cd leetcode-tracker
- Install and start XAMPP
- Start Apache and MySQL services in XAMPP Control Panel
- Open phpMyAdmin (http://localhost/phpmyadmin)
- Create a new database named
leetcode_posts - Import the schema:
- Click on the
leetcode_postsdatabase - Go to the SQL tab
- Copy and paste the contents of
backend/db.sql - Click "Go" to execute
- Click on the
cd backend npm install
cd backend node app.js
The server runs at:
Once the backend server is running, open your browser and go to:
The Express server automatically serves the frontend files from the public folder.
No need for a separate frontend server!
This means MySQL isn't running. To fix:
- Open XAMPP Control Panel
- Click "Start" next to MySQL (it should turn green)
- Also start Apache if you want to use phpMyAdmin
- Verify MySQL shows "Running" status
- Try running
node app.jsagain
If MySQL won't start:
- Check for port conflicts (another program using port 3306)
- Stop any other MySQL services in Windows Services
- In XAMPP, click Config → my.ini and verify port is 3306
- Open the homepage to view all tracked problems
- Add a new problem using Create Problem
- Enter:
- Title
- Difficulty
- Tags
- Solution explanation
- Save and revisit at any time for review
LeetCode progress is easier when you can see what you've solved, how you solved it, and what patterns you've learned. This tool provides a clean, simple way to organize that information without clutter.
- Search/filtering
- Difficulty sorting
- Progress dashboard
- Authentication
- Cloud database option
This project is for educational/demonstration purposes only.
Current security limitations:
- Passwords are stored in plain text (no hashing/encryption)
- Database credentials are hardcoded (not using environment variables)
- No input validation or sanitization
- No protection against SQL injection or XSS attacks
Do NOT use this in production or with real user data.
For production use, you would need to implement:
- Password hashing (bcrypt)
- Environment variables for credentials
- Input validation and sanitization
- Parameterized queries (already partially implemented)
- HTTPS/SSL encryption
- Session management and CSRF protection
Feel free to fork the repo and submit pull requests.
MIT License