Skip to main content

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

  1. Clone the repository
git clone https://github.com/yourusername/boots.git
cd boots
  1. Create virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\\Scripts\\activate
  1. Install dependencies
pip install -r requirements.txt
  1. Run migrations
python manage.py makemigrations
python manage.py migrate
  1. Populate initial data
python manage.py populate_data
  1. Create superuser (optional)
python manage.py createsuperuser
  1. 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/password
  • POST /api/auth/refresh/ - Refresh JWT token
  • POST /api/users/register/ - Register new user

Courses

  • GET /api/courses/tracks/ - List all learning tracks
  • GET /api/courses/courses/ - List all courses
  • GET /api/courses/courses/{slug}/ - Course details
  • POST /api/courses/courses/{slug}/enroll/ - Enroll in course
  • GET /api/courses/lessons/{id}/ - Lesson details
  • POST /api/courses/lessons/{id}/complete/ - Mark lesson complete

Exercises

  • GET /api/courses/exercises/{id}/ - Exercise details
  • POST /api/courses/exercises/{id}/submit/ - Submit solution
  • GET /api/courses/exercises/{id}/hint/ - Get hint

SQL Playground

  • POST /api/courses/sql-playground/execute/ - Execute SQL query
  • GET /api/courses/sql-playground/datasets/ - List available datasets

User Profile

  • GET /api/users/profile/ - Get user profile
  • PATCH /api/users/update_profile/ - Update profile
  • GET /api/users/dashboard/ - User dashboard with stats

Gamification

  • GET /api/gamification/achievements/ - List achievements
  • GET /api/gamification/achievements/my_achievements/ - User's achievements
  • GET /api/gamification/leaderboards/weekly/ - Weekly leaderboard
  • GET /api/gamification/leaderboards/all_time/ - All-time leaderboard
  • GET /api/gamification/daily-challenges/today/ - Today's challenge
  • POST /api/gamification/daily-challenges/complete/ - Complete daily challenge

🎯 Demo Credentials

  • Username: demo
  • Password: demo123

📚 Course Structure

SQL Course (10 Chapters)

  1. Introduction to Databases - Database concepts and terminology
  2. SELECT Statements - Basic queries and WHERE clauses
  3. Filtering and Sorting - AND/OR/NOT, ORDER BY, LIMIT
  4. JOIN Operations - INNER, LEFT, RIGHT, FULL OUTER joins
  5. Aggregate Functions - COUNT, SUM, AVG, GROUP BY, HAVING
  6. Subqueries - Nested queries and EXISTS operator
  7. Data Manipulation - INSERT, UPDATE, DELETE
  8. Database Design - CREATE TABLE, data types, constraints
  9. Advanced Queries - Window functions, CTEs, CASE statements
  10. 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:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

typequest-1.0.0.tar.gz (609.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

typequest-1.0.0-py3-none-any.whl (683.2 kB view details)

Uploaded Python 3

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

Hashes for typequest-1.0.0.tar.gz
Algorithm Hash digest
SHA256 a8dd7b0bffff500cb9bb31872f196693c6c148535b05f44d01700cd4c831a003
MD5 5eff8d7c6e7077212dc77da303e10a64
BLAKE2b-256 d2348799833585fa9c4bcacec51ff4144273abe9ea02a40cd3b08502ac0d044e

See more details on using hashes here.

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

Hashes for typequest-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f2f63a7221ecf00863345b8a6291b3ac1b4d3d1e7c28cfb5d328b363cf49189a
MD5 0a70a9d50fd256ceb86af201cf3a55ed
BLAKE2b-256 8dd8d4816dfb8701910a1160916feca5c95d14bddf65f6e9e40d1a841a3f3fb1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page