Education Backend

screenshot of Education Backend
django

Django-based backend for our learning management system

Overview

The backend project for tough-dev.school is a robust Django-based system designed for production, showcasing advanced integration with various services like Tinkoff, Dashamail, Postmark, S3, and Telegram. The frontend is carefully constructed using Vue.js, maintained in a separate repository, allowing for a clear division of concerns between the backend and frontend development. This setup not only enhances maintainability but also streamlines collaboration across different teams.

Installation and configuration are straightforward for developers running the project locally. It requires Python 3.11, and with the assistance of tools like Poetry for dependency management, working with the project becomes seamless. Additionally, using Docker and Docker Compose simplifies the setup process for essential services like PostgreSQL and Redis, which are crucial for the backend logic to function efficiently.

Features

  • Django Framework: Built on Django, adhering to its best practices, ensuring a reliable and scalable backend environment.
  • Integrated Services: Connects with Tinkoff, Dashamail, Postmark, S3, and Telegram for robust functionality across different use cases.
  • Separation of Frontend and Backend: The frontend is developed in Vue.js in a separate repository, promoting modular architecture.
  • Environment Configuration: Configuration files are neatly organized, making it easy to manage different environments directly from the src/core/.env folder.
  • Linter Integration: The project encourages the use of the ruff linter according to Django's style guidelines, enhancing code quality and maintainability.
  • Service-Oriented Architecture: Emphasizes using service classes like UserCreator and OrderCreator for business logic, keeping views and templates clean and free from complex logic.
  • Docker Support: Simplifies deployment and local testing through Docker and Docker Compose, facilitating easier management of database services.
  • PEP-484 Type Hints: Advocates for the use of type hints, improving code readability and assistance during development.
django
Django

Django is a high-level Python web framework that encourages rapid development and clean, pragmatic design. It follows the model-view-controller (MVC) architectural pattern, providing an extensive set of built-in tools and conventions to streamline the creation of robust and scalable web applications.