Interactive CLI for learning backend development with SQL, Python, and Django
Project description
🚀 Boots Learning Platform
A comprehensive coding education platform inspired by boot.dev, built with Django REST Framework. Learn SQL, Python, Go, Java, and more through interactive exercises, gamification, and real-time code execution.
✨ Features
🎓 Core Learning Features
- Structured Learning Paths: Backend development tracks starting with SQL
- Interactive Exercises: Write and execute code directly in the browser
- SQL Playground: Practice SQL queries with real datasets
- Progressive Difficulty: From beginner to advanced concepts
- Code Validation: Real-time feedback on your solutions
🎮 Gamification System
- XP System: Earn experience points for completing lessons and exercises
- Achievements: Unlock achievements for milestones
- Leaderboards: Weekly, monthly, and all-time rankings
- Badges: Collect badges for mastering skills
- Daily Challenges: New coding challenge every day
- Learning Streaks: Track consecutive days of learning
📊 Sample Datasets
- Company Database: Employees, departments, projects
- E-commerce Database: Products, customers, orders, reviews
- School Database: Students, courses, enrollments
👤 User Features
- Progress Tracking: Monitor your learning journey
- User Profiles: Customize your profile with bio, GitHub, LinkedIn
- Learning Goals: Set and track personal learning objectives
- Dashboard: Overview of stats, achievements, and recent activity
🛠️ Tech Stack
- Backend: Django 5.0, Django REST Framework
- Database: SQLite (development), PostgreSQL (production)
- Authentication: JWT with djangorestframework-simplejwt
- Code Execution: Sandboxed SQL execution, Python/JS/Go/Java support
- API: RESTful API with comprehensive endpoints
📦 Installation
Prerequisites
- Python 3.10+
- pip
- virtualenv (recommended)
Setup Instructions
- Clone the repository
git clone https://github.com/yourusername/boots.git
cd boots
- Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\\Scripts\\activate
- Install dependencies
pip install -r requirements.txt
- Run migrations
python manage.py makemigrations
python manage.py migrate
- Populate initial data
python manage.py populate_data
- Create superuser (optional)
python manage.py createsuperuser
- Run the server
python manage.py runserver
The API will be available at http://localhost:8000/api/
🔑 API Endpoints
Authentication
POST /api/auth/login/- Login with username/passwordPOST /api/auth/refresh/- Refresh JWT tokenPOST /api/users/register/- Register new user
Courses
GET /api/courses/tracks/- List all learning tracksGET /api/courses/courses/- List all coursesGET /api/courses/courses/{slug}/- Course detailsPOST /api/courses/courses/{slug}/enroll/- Enroll in courseGET /api/courses/lessons/{id}/- Lesson detailsPOST /api/courses/lessons/{id}/complete/- Mark lesson complete
Exercises
GET /api/courses/exercises/{id}/- Exercise detailsPOST /api/courses/exercises/{id}/submit/- Submit solutionGET /api/courses/exercises/{id}/hint/- Get hint
SQL Playground
POST /api/courses/sql-playground/execute/- Execute SQL queryGET /api/courses/sql-playground/datasets/- List available datasets
User Profile
GET /api/users/profile/- Get user profilePATCH /api/users/update_profile/- Update profileGET /api/users/dashboard/- User dashboard with stats
Gamification
GET /api/gamification/achievements/- List achievementsGET /api/gamification/achievements/my_achievements/- User's achievementsGET /api/gamification/leaderboards/weekly/- Weekly leaderboardGET /api/gamification/leaderboards/all_time/- All-time leaderboardGET /api/gamification/daily-challenges/today/- Today's challengePOST /api/gamification/daily-challenges/complete/- Complete daily challenge
🎯 Demo Credentials
- Username: demo
- Password: demo123
📚 Course Structure
SQL Course (10 Chapters)
- Introduction to Databases - Database concepts and terminology
- SELECT Statements - Basic queries and WHERE clauses
- Filtering and Sorting - AND/OR/NOT, ORDER BY, LIMIT
- JOIN Operations - INNER, LEFT, RIGHT, FULL OUTER joins
- Aggregate Functions - COUNT, SUM, AVG, GROUP BY, HAVING
- Subqueries - Nested queries and EXISTS operator
- Data Manipulation - INSERT, UPDATE, DELETE
- Database Design - CREATE TABLE, data types, constraints
- Advanced Queries - Window functions, CTEs, CASE statements
- Performance Optimization - Indexes, query optimization
🚀 Future Enhancements
- Additional programming languages (Go, Java, TypeScript)
- Video content integration
- Live coding sessions
- Peer code reviews
- Project-based learning
- Certification system
- Mobile app
- AI-powered code review
- Collaborative learning features
- Integration with GitHub
🤝 Contributing
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- Inspired by boot.dev
- Built with Django REST Framework
- SQL datasets for educational purposes
📧 Contact
For questions or suggestions, please open an issue or contact the maintainers.
Happy Learning! 🎓
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file typequest-1.0.0.tar.gz.
File metadata
- Download URL: typequest-1.0.0.tar.gz
- Upload date:
- Size: 609.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a8dd7b0bffff500cb9bb31872f196693c6c148535b05f44d01700cd4c831a003
|
|
| MD5 |
5eff8d7c6e7077212dc77da303e10a64
|
|
| BLAKE2b-256 |
d2348799833585fa9c4bcacec51ff4144273abe9ea02a40cd3b08502ac0d044e
|
File details
Details for the file typequest-1.0.0-py3-none-any.whl.
File metadata
- Download URL: typequest-1.0.0-py3-none-any.whl
- Upload date:
- Size: 683.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f2f63a7221ecf00863345b8a6291b3ac1b4d3d1e7c28cfb5d328b363cf49189a
|
|
| MD5 |
0a70a9d50fd256ceb86af201cf3a55ed
|
|
| BLAKE2b-256 |
8dd8d4816dfb8701910a1160916feca5c95d14bddf65f6e9e40d1a841a3f3fb1
|