The Task Manager Project is a web application designed to help users manage their tasks efficiently.
🔴 Currently working on this project
To develop a web service using Docker Compose that has a frontend and a backend with two phases - build and production. The web service must have authentication and authorization to the OpenID provider, which is in the same infrastructure. Also, must store user data in a DBMS cluster through a load balancer.
- Next.js: A React framework for production that includes features like server-side rendering and static site generation.
- Flask: A lightweight WSGI web application framework in Python.
- MariaDB Galera Cluster: A synchronous multi-master cluster for MariaDB.
- Keycloak: An open-source identity and access management solution.
- MaxScale: A database proxy for MariaDB that provides load balancing and query routing.
- Docker: Used for creating, deploying, and running applications in containers.
- Docker Compose: Used for defining and running multi-container Docker applications.
- Task Management: Users can create, edit, and delete tasks. Tasks can be categorized, prioritized, and tracked for completion.
- User Authentication: Secure login and registration using Keycloak.
- Database Management: High availability and fault tolerance using a MariaDB Galera cluster.
- Load Balancing: Efficient load distribution across database servers using MaxScale.
The application is containerized using Docker, allowing for easy setup and deployment. The project includes the necessary Docker configuration files to orchestrate the services.
- Frontend: The Next.js application provides the user interface.
- Backend: The Flask application handles the business logic.
- Database: The MariaDB Galera cluster ensures data consistency and high availability.
- Authentication: Keycloak manages user authentication and authorization.
- Load Balancing: MaxScale handles load balancing and query routing for the database cluster.
The project can be easily deployed using Docker Compose, which sets up all necessary services in their respective containers, ensuring they can communicate with each other seamlessly.