Skip to content

jdasilvalima/brainSync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

76 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

BRAIN SYNC

React Flask PostgreSQL Llama3.2 Docker

GitHub code size in bytes GitHub last commit

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

Web Application Presentation Gif

II. PROJECT SETUP

II.1 Requirements

  • 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.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 :

  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 >> .env2

Build and run locally :

  cd brainSync
  docker-compose up --build

Backend Docker Containers

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'.

FrontEnd Docker Containers

III. APPLICATION ARCHITECTURE

III.1 Database

Below is a schema illustrating the structure and relationships between the database tables.

Tables

III.2 Backend

The backend is structured as a modular Python application organized into distinct functional areas:

Backend Core Module

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).

Backend Architecture

III.1 Frontend

The following schema illustrates how the pages in the application are interconnected, highlighting the navigation flow and their hierarchical relationships. FrontEnd Architecture

IV. REFERENCES

Local LLMs

Spaced Repetition Learning

About

🏫 Web application that uses AI to create personalized learning paths, flashcards, and quizzes for users

Topics

Resources

License

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors