https://github.com/jdasilvalima/brainsync
🏫 Web application that uses AI to create personalized learning paths, flashcards, and quizzes for users
https://github.com/jdasilvalima/brainsync
docker flask ollama postgresql reactjs
Last synced: 3 months ago
JSON representation
🏫 Web application that uses AI to create personalized learning paths, flashcards, and quizzes for users
- Host: GitHub
- URL: https://github.com/jdasilvalima/brainsync
- Owner: jdasilvalima
- License: mit
- Created: 2024-09-23T12:55:19.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-12-31T17:16:02.000Z (over 1 year ago)
- Last Synced: 2025-04-04T07:33:23.855Z (over 1 year ago)
- Topics: docker, flask, ollama, postgresql, reactjs
- Language: TypeScript
- Homepage:
- Size: 21 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# BRAIN SYNC






[](https://github.com/jdasilvalima/brainSync/commits)
## I. PROJECT DESCRIPTION
### I.1 Introduction
**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.
### I.2 Goals
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
### I.3 Web Application Overview
## II. PROJECT SETUP
### II.1 Requirements
- [Docker](https://www.docker.com/) neeeds to be installed
- Optional - [Bruno](https://www.usebruno.com/) can utilize the API collection located in the 'api_collection' folder to make HTTP/HTTPS requests to the backend
Clone this project
```sh
mkdir brainSync
git clone git@github.com:jdasilvalima/brainSync.git
```
### II.2 BACKEND
This 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 :
```bash
cd .\backend\
```
```bash
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 >> .env2
```
Build and run locally :
```bash
cd brainSync
docker-compose up --build
```

### II.3 FRONTEND
This project is using React + TypeScript + Vite.
The front-end container will be build with the previous command 'docker-compose up --build'.

## III. APPLICATION ARCHITECTURE
### III.1 Database
Below is a schema illustrating the structure and relationships between the database tables.
### III.2 Backend
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).

### III.1 Frontend
The following schema illustrates how the pages in the application are interconnected, highlighting the navigation flow and their hierarchical relationships.

## IV. REFERENCES
**Local LLMs**
- [Everything I've learned so far about running local LLMs (EN)](https://nullprogram.com/blog/2024/11/10/)
**Spaced Repetition Learning**
- [How to Remember Anything (EN)](https://rachel.fast.ai/posts/2023-02-21-anki/)