{"id":26085145,"url":"https://github.com/laurentlaurent/brainboost","last_synced_at":"2026-02-16T21:32:07.931Z","repository":{"id":281415250,"uuid":"945021329","full_name":"laurentlaurent/brainboost","owner":"laurentlaurent","description":"BrainBoost is an innovative learning platform that uses AI and gamification to make studying fun and effective. With personalized flashcards, users progress at their own pace, combining spaced repetition with challenges and rewards to enhance memory and skills in an interactive way. a fun and interactive way.","archived":false,"fork":false,"pushed_at":"2025-12-21T07:31:29.000Z","size":824,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-23T01:31:49.031Z","etag":null,"topics":["ai","flashcards","flask","gemini-api","nextjs","python","react"],"latest_commit_sha":null,"homepage":"https://brainboost-eta.vercel.app/","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/laurentlaurent.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,"zenodo":null}},"created_at":"2025-03-08T13:28:46.000Z","updated_at":"2025-12-21T07:31:33.000Z","dependencies_parsed_at":"2025-03-08T23:25:58.698Z","dependency_job_id":"078d1c42-70b2-4226-b715-0004868dcde2","html_url":"https://github.com/laurentlaurent/brainboost","commit_stats":null,"previous_names":["laurentlaurent/brainboost"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/laurentlaurent/brainboost","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/laurentlaurent%2Fbrainboost","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/laurentlaurent%2Fbrainboost/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/laurentlaurent%2Fbrainboost/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/laurentlaurent%2Fbrainboost/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/laurentlaurent","download_url":"https://codeload.github.com/laurentlaurent/brainboost/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/laurentlaurent%2Fbrainboost/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29519305,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-16T18:37:19.720Z","status":"ssl_error","status_checked_at":"2026-02-16T18:36:46.920Z","response_time":115,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":["ai","flashcards","flask","gemini-api","nextjs","python","react"],"created_at":"2025-03-09T05:34:15.504Z","updated_at":"2026-02-16T21:32:07.907Z","avatar_url":"https://github.com/laurentlaurent.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BrainBoost\n\nBrainBoost is an interactive web application that uses AI to generate flashcards from various types of content. The application facilitates learning by automatically transforming PDF documents into question-answer cards.\n\nBrainBoost was built in just 24 hours during a hackathon by:\n- [Laurent](https://github.com/laurentlaurent/)\n- [Pierre-Henri](https://github.com/phlearning)\n\n## Features\n\n- **PDF Import**: Import PDFs\n- **Automatic AI Generation**: creation of relevant question-answer cards using Google Gemini AI\n- **Interactive Study Mode**: review your cards with different learning modes\n- **Progress Tracking**: evaluate your mastery of concepts\n- **Responsive Interface**: usable on computer, tablet, or mobile\n\n## Project Architecture\n\nThe project is divided into two main parts:\n\n- **Backend** (Flask): API for file processing and integration with Gemini AI\n- **Frontend** (Next.js): Interactive and responsive user interface\n\n## Prerequisites\n\n- Python 3.8 or higher (for local development)\n- Node.js 18.x or higher (for local development)\n- Docker and Docker Compose (for containerized deployment)\n- A Google Gemini API key (free)\n- A NeonDB account (free tier available) for production database\n\n## Installation\n\n### Setting up NeonDB (for production)\n\n1. Create a NeonDB account at [https://neon.tech](https://neon.tech)\n2. Create a new project\n3. In your project dashboard:\n   - Click \"Connection Details\"\n   - Select \"Prisma\" to get the connection string\n   - Copy the connection string that starts with `postgresql://` (not `postgres://`)\n4. Update your `.env.backend` file with the connection string:\n   ```bash\n   DATABASE_URL=postgresql://your-user:your-password@your-endpoint/your-database?sslmode=require\n   ```\n\n\u003e **Important**: Use the connection string that starts with `postgresql://` (not `postgres://`) to avoid configuration issues.\n\n### Using Docker (recommended)\n\n```bash\n# Copy environment files\ncp .env.backend.example .env.backend\ncp .env.frontend.example .env.frontend\n\n# Edit backend/.env to add your Gemini API key\n# GEMINI_API_KEY=your_key_here\n\n# Start the application with Docker Compose\ndocker compose up --build\n```\n\nThe application will be available at:\n- Frontend: http://localhost:3000\n- Backend API: http://localhost:5000\n\n### With Make (local development)\n\n```bash\n# Install all dependencies\nmake setup\n\n# Configure Gemini API key in backend/.env\n```\n\n### Manual Installation (local development)\n\n#### Backend\n\n```bash\ncd backend\npython -m venv venv\nsource venv/bin/activate  # On Windows: venv\\Scripts\\activate\npip install -r requirements.txt\ncp .env.example .env  # Configure Gemini API key\n```\n\n#### Frontend\n\n```bash\ncd frontend\nnpm install\n```\n\n## Starting the Application\n\n### With Docker\n\n```bash\n# Start all services\ndocker compose up\n\n# Start in detached mode\ndocker compose up -d\n\n# Rebuild and start\ndocker compose up --build\n\n# Stop all services\ndocker compose down\n```\n\n### With Make (local development)\n\n```bash\n# Terminal 1: Start the backend\nmake run-backend\n\n# Terminal 2: Start the frontend\nmake run-frontend\n```\n\n### Manual Start (local development)\n\n#### Backend\n\n```bash\ncd backend\nsource venv/bin/activate  # On Windows: venv\\Scripts\\activate\npython app.py\n```\n\n#### Frontend\n\n```bash\ncd frontend\nnpm run dev\n```\n\n## Environment Configuration\n\n### Backend (.env.backend)\n```bash\n# API Keys\nGEMINI_API_KEY=your_gemini_api_key\n\n# Configuration Flask\nFLASK_APP=app.py\nFLASK_ENV=development\nFLASK_DEBUG=1\n\n# Server Configuration\nPORT=5000\nHOST=0.0.0.0\n\n# Database Configuration\n# For local development with Docker:\nDATABASE_URL=postgresql://brainboost:brainboost@postgres:5432/brainboost\n\n# For production with NeonDB:\n# DATABASE_URL=postgresql://your-user:your-password@your-endpoint/your-database?sslmode=require\n```\n\n### Frontend (.env.frontend)\n```\nNEXT_PUBLIC_API_URL=http://localhost:5000/api\n```\n\nWhen using Docker Compose, the frontend will automatically connect to the backend service.\n\n## Getting a Gemini API Key\n\n1. Visit [Google AI Studio](https://ai.google.dev/)\n2. Create an account if needed\n3. Access the API section and create an API key\n4. Copy this key into the `backend/.env` file\n\n## Tests\n\nTo verify that the Gemini API is working correctly:\n\n```bash\nmake test-backend\n```\n\n## Deployment\n\nThe project includes configuration files for deployment:\n- `vercel.json` for deploying the frontend to Vercel and need to be changed accordingly to your own configuration\n- Docker configuration for containerized deployment\n\n## Screenshots\n\n\u003cdetails\u003e\n\u003csummary\u003eClick to view screenshots\u003c/summary\u003e\n\n### Home Page - Upload and manage your flashcards\n![Home Page](screenshots/home.png)\n\n### Document Upload - Import PDFs and generate flashcards\n![Upload Page](screenshots/upload.png)\n\n### Study Mode - Review your flashcards\n![Study Mode](screenshots/study.png)\n\n### Quiz Mode - Test your knowledge\n![Quiz Mode](screenshots/quiz.png)\n\n\u003c/details\u003e\n\n## License\n\nThis project is under MIT license - see the LICENSE file for more details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flaurentlaurent%2Fbrainboost","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flaurentlaurent%2Fbrainboost","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flaurentlaurent%2Fbrainboost/lists"}