A comprehensive web application for coding practice with problem workspace, algorithm cribsheet, test harness, and practice tracker.
- Create coding problems with templates for multiple languages
- Organize problems by difficulty, tags, and status
- Sample input/output management
- Support for JavaScript, Python, Java, and C++
- Pre-loaded algorithms with implementations
- Searchable by category, difficulty, and tags
- Code examples in multiple languages
- Complexity analysis and use cases
- Run your solutions against test cases
- Add custom test cases
- Detailed diff reporting
- Support for multiple programming languages
- Log problem attempts with time tracking
- Progress goals (daily/weekly/monthly)
- Statistics dashboard
- Streak tracking
- Export data to CSV
- Backend: Node.js + Express + Socket.IO
- Frontend: Vanilla JavaScript + Modern CSS
- Deployment: Vercel
- Data Storage: JSON files
-
Install Vercel CLI:
npm i -g vercel
-
Deploy:
vercel
-
Follow the prompts:
- Link to existing project or create new
- Choose your Vercel account
- Deploy!
- Push your code to GitHub
- Connect your repository to Vercel
- Vercel will automatically deploy on every push
-
Install dependencies:
npm install
-
Start development server:
npm run dev
-
Open: http://localhost:3000
βββ server/
β βββ index.js # Main server with API endpoints
β βββ problem-workspace.js # Problem management
β βββ test-harness.js # Code execution and testing
β βββ algorithm-cribsheet.js # Algorithm patterns
β βββ practice-tracker.js # Progress tracking
βββ public/
β βββ index.html # Modern UI
β βββ app.js # Frontend logic
βββ vercel.json # Vercel configuration
βββ package.json # Dependencies
- Create Problems: Use the Problems tab to add coding challenges
- Study Algorithms: Browse the Algorithms tab for patterns and implementations
- Test Solutions: Use the Practice tab to run your code against test cases
- Track Progress: Monitor your improvement in the Tracking tab
POST /api/problems- Create new problemGET /api/problems- List all problemsGET /api/problems/:id- Get specific problemPATCH /api/problems/:id/status- Update problem status
POST /api/problems/:id/test- Run testsPOST /api/problems/:id/test-cases- Add test case
GET /api/algorithms- Search algorithmsGET /api/algorithms/:id- Get specific algorithmGET /api/algorithms/categories- Get categoriesGET /api/algorithms/tags- Get tags
POST /api/practice/log- Log problem attemptGET /api/practice/statistics- Get statisticsGET /api/practice/sessions- Get recent sessionsGET /api/practice/progress- Get progress reportGET /api/practice/export- Export data
MIT License - feel free to use this for your coding practice!
Contributions are welcome! Please feel free to submit a Pull Request.