BrainSync is a web application designed to enhance the study experience by providing AI-generated personalized learning paths, flashcards, and quizzes. Based on the principles of spaced repetition, the platform optimizes memory retention by revisiting information at strategically timed intervals.
Features :
- Personalized Learning Paths: AI generates tailored study paths based on user goals and progress, ensuring an effective learning journey.
- Flashcards: AI-created flashcards allow users to practice active recall, with options to manage and review them for better retention.
- Adaptive Quizzes: AI-driven quizzes adapt to individual needs, reinforcing areas that require improvement.
This project is designed as a personal learning initiative with the following goals:
- Deepen knowledge in Artificial Intelligence, with a particular focus on developing localized solutions
- Learn frontend development with React
- Explore backend development using Python and Flask
- Docker neeeds to be installed
- Optional - Bruno can utilize the API collection located in the 'api_collection' folder to make HTTP/HTTPS requests to the backend
Clone this project
mkdir brainSync
git clone git@github.com:jdasilvalima/brainSync.gitThis project is using Flask + Python + PostgreSQL. There is an Ollama server using Llama3.2 model.
Create and set-up .env file in the backend folder :
cd .\backend\ echo # PostgreSQL > .env2
echo POSTGRES_USER=postgres_user >> .env2
echo POSTGRES_PASSWORD=postgres_password >> .env2
echo POSTGRES_DB=brainsync >> .env2
echo. >> .env2
echo # Flask >> .env2
echo FLASK_ENV=development >> .env2
echo DATABASE_URL=postgresql://postgres_user:postgres_password@flask_db:5432/brainsync >> .env2Build and run locally :
cd brainSync
docker-compose up --buildThis project is using React + TypeScript + Vite.
The front-end container will be build with the previous command 'docker-compose up --build'.
Below is a schema illustrating the structure and relationships between the database tables.
The backend is structured as a modular Python application organized into distinct functional areas:
We are using a Model-Controller-Service arhictecture. Each module follows a three-layer architecture with controllers (handling HTTP requests), services (implementing business logic), and models (managing data).
The following schema illustrates how the pages in the application are interconnected, highlighting the navigation flow and their hierarchical relationships.

Local LLMs
Spaced Repetition Learning





