{"id":23131437,"url":"https://github.com/jdasilvalima/brainsync","last_synced_at":"2026-04-07T08:32:07.394Z","repository":{"id":258327541,"uuid":"861746436","full_name":"jdasilvalima/brainSync","owner":"jdasilvalima","description":"🏫 Web application that uses AI to create personalized learning paths, flashcards, and quizzes for users","archived":false,"fork":false,"pushed_at":"2024-12-31T17:16:02.000Z","size":21988,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-04T07:33:23.855Z","etag":null,"topics":["docker","flask","ollama","postgresql","reactjs"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jdasilvalima.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-23T12:55:19.000Z","updated_at":"2024-12-31T17:16:05.000Z","dependencies_parsed_at":"2024-10-26T17:24:36.339Z","dependency_job_id":"a3313aa1-3922-4971-8ea6-a119ece4e41a","html_url":"https://github.com/jdasilvalima/brainSync","commit_stats":null,"previous_names":["jdasilvalima/brainsync"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jdasilvalima/brainSync","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdasilvalima%2FbrainSync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdasilvalima%2FbrainSync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdasilvalima%2FbrainSync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdasilvalima%2FbrainSync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jdasilvalima","download_url":"https://codeload.github.com/jdasilvalima/brainSync/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdasilvalima%2FbrainSync/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31506562,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T03:10:19.677Z","status":"ssl_error","status_checked_at":"2026-04-07T03:10:13.982Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","flask","ollama","postgresql","reactjs"],"created_at":"2024-12-17T11:13:08.381Z","updated_at":"2026-04-07T08:32:07.366Z","avatar_url":"https://github.com/jdasilvalima.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BRAIN SYNC\n\n![React](https://img.shields.io/badge/React-20232A?style=for-the-badge\u0026logo=react\u0026logoColor=61DAFB)\n![Flask](https://img.shields.io/badge/Flask-000000?style=for-the-badge\u0026logo=flask\u0026logoColor=white)\n![PostgreSQL](https://img.shields.io/badge/PostgreSQL-316192?style=for-the-badge\u0026logo=postgresql\u0026logoColor=white)\n![Llama3.2](https://img.shields.io/badge/Llama3.2-000000?style=for-the-badge\u0026logo=ollama\u0026logoColor=white)\n![Docker](https://img.shields.io/badge/docker-%230db7ed.svg?style=for-the-badge\u0026logo=docker\u0026logoColor=white)\n\n![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/jdasilvalima/brainSync?style=for-the-badge)\n[![GitHub last commit](https://img.shields.io/github/last-commit/jdasilvalima/brainSync?style=for-the-badge)](https://github.com/jdasilvalima/brainSync/commits)\n\n## I. PROJECT DESCRIPTION\n### I.1 Introduction\n**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.\n\n**Features :**\n\n- **Personalized Learning Paths:** AI generates tailored study paths based on user goals and progress, ensuring an effective learning journey.\n- **Flashcards:** AI-created flashcards allow users to practice active recall, with options to manage and review them for better retention.\n- **Adaptive Quizzes:** AI-driven quizzes adapt to individual needs, reinforcing areas that require improvement.\n\n### I.2 Goals\nThis project is designed as a personal learning initiative with the following goals:\n\n- Deepen knowledge in Artificial Intelligence, with a particular focus on developing localized solutions\n- Learn frontend development with React\n- Explore backend development using Python and Flask\n\n### I.3 Web Application Overview\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./readme-doc/web-app-presentation.gif\" alt=\"Web Application Presentation Gif\" style=\"width: 50%;\"\u003e\n\u003c/p\u003e\n\n\n\n## II. PROJECT SETUP\n### II.1 Requirements\n- [Docker](https://www.docker.com/) neeeds to be installed\n- 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\n\nClone this project\n  ```sh\n    mkdir brainSync\n    git clone git@github.com:jdasilvalima/brainSync.git\n  ```\n\n### II.2 BACKEND\nThis project is using Flask + Python + PostgreSQL.\nThere is an Ollama server using Llama3.2 model.\n\nCreate and set-up .env file in the backend folder :\n\n```bash\n  cd .\\backend\\\n```\n```bash\n  echo # PostgreSQL \u003e .env2\n  echo POSTGRES_USER=postgres_user \u003e\u003e .env2\n  echo POSTGRES_PASSWORD=postgres_password \u003e\u003e .env2\n  echo POSTGRES_DB=brainsync \u003e\u003e .env2\n  echo. \u003e\u003e .env2\n  echo # Flask \u003e\u003e .env2\n  echo FLASK_ENV=development \u003e\u003e .env2\n  echo DATABASE_URL=postgresql://postgres_user:postgres_password@flask_db:5432/brainsync \u003e\u003e .env2\n```\n\nBuild and run locally :\n```bash\n  cd brainSync\n  docker-compose up --build\n```\n\n![Backend Docker Containers](./readme-doc/backend-containers.png)\n\n### II.3 FRONTEND\nThis project is using React + TypeScript + Vite.\n\nThe front-end container will be build with the previous command 'docker-compose up --build'.\n\n![FrontEnd Docker Containers](./readme-doc/frontend-containers.png)\n\n## III. APPLICATION ARCHITECTURE\n### III.1 Database\nBelow is a schema illustrating the structure and relationships between the database tables.\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./readme-doc/tables.png\" alt=\"Tables\"\u003e\n\u003c/p\u003e\n\n### III.2 Backend\nThe backend is structured as a modular Python application organized into distinct functional areas:\n\n![Backend Core Module](./readme-doc/core-modules.png)\n\nWe 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).\n\n![Backend Architecture](./readme-doc/be-architecture.png)\n\n### III.1 Frontend\nThe following schema illustrates how the pages in the application are interconnected, highlighting the navigation flow and their hierarchical relationships.\n![FrontEnd Architecture](./readme-doc/fe-architecture.png)\n\n\n## IV. REFERENCES\n**Local LLMs**\n- [Everything I've learned so far about running local LLMs (EN)](https://nullprogram.com/blog/2024/11/10/)\n\n**Spaced Repetition Learning**\n- [How to Remember Anything (EN)](https://rachel.fast.ai/posts/2023-02-21-anki/)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjdasilvalima%2Fbrainsync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjdasilvalima%2Fbrainsync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjdasilvalima%2Fbrainsync/lists"}