This project focuses on designing and creating the database structure behind Duolingo, a popular language-learning platform. The goal is to analyze and model the core components of Duolingo's system to understand how it manages users, courses, lessons, and the gamified reward system that makes it highly engaging for learners.
Duolingo leverages a structured database system to handle large amounts of user data, including progress tracking, achievements, and language lessons. By reverse-engineering this system, we aim to create a comprehensive database model that could serve as the foundation for similar educational platforms.
- Analyze the structure of Duolingo's database.
- Model entities, attributes, and relationships to replicate its functionality.
- Optimize the design for future implementation in a relational database management system (RDBMS).
- Document findings and propose improvements for educational app development.
- MySQL - Database Management System
- PostgreSQL - Database Management System
- FastAPI - Web framework for building the API
- Uvicorn - ASGI server for running the API
- Python - Programming language for the backend logic
To set up and run the project locally, follow these steps:
git clone https://github.com/DrBider-dev/DuolingoUD.git
cd DuolingoDB/srcpip install -r requirements.txtdocker-compose upuvicorn main:app --reload