A beautiful React application to track your progress on the Blind 75 coding questions.
- Progress Bar: Visual representation of your completion status
- Random Question Picker: Randomly select 3 questions to practice
- Status Tracking: Mark questions as completed with checkboxes
- CSV Integration: All changes are saved directly to your blind75.csv file
- Modern UI: Beautiful gradient design with smooth animations
- Node.js (v16 or higher)
- npm (comes with Node.js)
- Install all dependencies (both backend and frontend):
npm run install-allOr manually:
# Install backend dependencies
npm install
# Install frontend dependencies
cd client
npm install
cd ..Option 1: Run both servers concurrently (recommended)
npm run devThis will start:
- Backend server on
http://localhost:3001 - Frontend development server on
http://localhost:5173
Option 2: Run servers separately
In one terminal:
npm run serverIn another terminal:
npm run client- Open your browser and navigate to
http://localhost:5173 - You'll see your current progress displayed in the progress bar
- Click the "Pick Questions" button to randomly select 3 questions
- A table will appear showing:
- Question name
- Link to the LeetCode problem (click "View Problem")
- Status checkbox
- Check/uncheck the boxes to mark questions as completed
- Click "Save" to save your changes to the CSV file
- Click "Cancel" to discard changes
Blind75/
├── client/ # React frontend
│ ├── src/
│ │ ├── App.jsx # Main application component
│ │ ├── App.css # Styles
│ │ └── index.css # Global styles
│ └── package.json
├── server/
│ └── server.js # Express backend server
├── blind75.csv # Your questions data
├── package.json # Root package.json
└── README.md # This file
GET /api/questions- Get all questionsGET /api/progress- Get completion progressGET /api/questions/random/:count- Get random questionsPUT /api/questions/update- Update question status
Port already in use: If port 3001 or 5173 is already in use, you can change them:
- Backend: Edit
PORTinserver/server.js - Frontend: Edit
vite.config.jsin the client folder
CORS errors: Make sure both servers are running. The backend must be running on port 3001 for the frontend to connect properly.
CSV not updating:
Check that you have write permissions for the blind75.csv file.
- Frontend: React, Vite
- Backend: Node.js, Express
- CSV Parsing: csv-parse, csv-stringify
- Styling: Custom CSS with modern gradients and animations
MIT