An API for a language learning platform that I'm developing from scratch for study purposes.
My approach involves applying TDD, Clean Architecture, Clean Code, Design Patterns, and SOLID principles. I'm adhering to the Classic School of TDD (also known as Detroit/Chicago), focusing on testing behavior rather than implementation details. This project aims to enhance my understanding of best practices in software development.
Regarding the test strategy, influenced by the Classical School and drawing insights from Vladimir Korikov's book, I'll opt for targeted mocking. This means I'll only mock when necessary, specifically in situations involving unmanaged out-of-process dependencies like SMTP and Payment gateways.
Functionalities roadmap:
- Authentication
- Login
- Student Registration (Three steps Onboarding)
- Tutor Registration
- Email verification
- Student Profile
- Tutor Profile
- Lesson Scheduling
- Payment features
Nice to have in the future:
- Add live video and real-time chat capabilities, instead of just sharing external links like Zoom or Google Meet.
- Signin/Signup using other methods such as Apple, Google, Facebook
Check back later for updates.
If you would like to contribute to the project, please follow these steps:
- Fork the repository.
- Create a new branch for your changes.
- Make your changes and commit them to your branch.
- Push your branch to your forked repository.
- Open a pull request against the main branch of the original repository.