This will be a fullstack app for learning english words from movies (to watch them later, maybe).
The idea for this is quite simple: users can search for movies, pick the most interesting for them and then learn the words with something like spaced repetition.
For backend microservice architecture written with Golang will be used. The current idea assumes the following list of services:
- API Gateway (combines all services at once resulting in some REST API, handles user authentication with JWT and refresh tokens)
- User service (serves user-related data such as login credentials)
- Verification service (the service is responsible for verifying the user's actions via email by sending codes)
- Movie service (the service serves data related to movies)
- Dictionary service (the service provides access to the meanings of words)
- Vocabulary service (serves user's words for learning)
For communication between services i'm going to use gRPC and Apache Kafka.
A mobile application with Flutter will play the role of a frontend for this app.
At the moment I see it mostly as a screen that scrolls down, giving you definitions of words and some challenges to test their knowledge.
Also there will be a list of movies that will represent a collection of words
For now it looks like this:
Implement a language-dependent API for learning words not only in English. Don't limit yourself to movies and add other content (e.g. books)