Skip to content

Flutter mobile and web app for simplifying learning process. Capable of working with pdf, jpeg, txt, doc files. Can summarize documents and create quizes based on summary

License

Notifications You must be signed in to change notification settings

extrawest/ai-study-companion-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 

Repository files navigation

AI Study Companion App

Maintenance Maintaner Ask Me Anything ! GitHub license GitHub release

Overview

AI Study Companion is a powerful Flutter application that leverages artificial intelligence to enhance your learning experience. The app allows users to upload various document types (PDF, DOC, TXT, JPG, PNG) and receive AI-generated summaries and interactive quizzes based on the content.

Preview

Simulator.-.iPhone.15.-.5.February.2025.mp4

Live Web link

https://67a4df0dd9f4e12a8327e0d3--stellular-marigold-95229f.netlify.app

Key Features

  • Document Processing

    • Support for multiple file formats (PDF, DOC, TXT, JPG, PNG)
    • Upload up to 5 files simultaneously
    • AI-powered document summarization
    • Text extraction from images using OCR
  • AI-Powered Learning

    • OpenAI GPT-3.5 and GPT-4 integration
    • Intelligent document analysis
    • Dynamic quiz generation
  • Advanced Technology Stack

    • Vector similarity search using Pinecone
    • Multi-agent system with Langgraph
    • Real-time processing and analysis
    • OCR for text extraction with @google-cloud/vision

Technical Architecture

Mobile App (Flutter)

  • BLoC pattern for state management
  • File handling and processing
  • Real-time communication with backend

Backend Server (Node.js/TypeScript)

  • OpenAI integration
  • Pinecone vector database
  • Multi-agent system using Langgraph
  • Document processing pipeline

Prerequisites

  • Flutter SDK (>=3.4.3)
  • Node.js (Latest LTS version)
  • OpenAI API Key
  • Pinecone API Key and Index

Installation

Mobile App Setup

  1. Clone the repository:
git clone 
  1. Navigate to the mobile app directory:
cd 
  1. Install dependencies:
flutter pub get

Server Setup

  1. Navigate to the server directory:
cd 
  1. Install dependencies:
npm install
  1. Create a .env file in the server root with the following variables:

Create account in Google Cloud and download the JSON file

GOOGLE_APPLICATION_CREDENTIALS_JSON = {YOUR GOOGLE APPLICATION CREDENTIALS JSON}
  1. Start the server:
npx tsx server.ts
  1. Update the server URL in the Flutter app:
    • Open mobile/lib/services/api_service.dart
    • Update the baseUrl to match your server address

Project Structure

.
├── mobile/                 # Flutter application
│   ├── lib/               # Dart source files
│   ├── assets/           # App resources
│   └── pubspec.yaml      # Flutter dependencies
│
└── server/                # Backend server
    ├── services/         # Business logic
    ├── routes/           # API endpoints
    ├── tools/            # Utility scripts
    └── package.json      # Node.js dependencies

Dependencies

Mobile App

  • flutter_ai_toolkit: ^0.6.8
  • flutter_bloc: ^9.0.0
  • file_picker: ^8.1.7
  • flutter_chat_ui: ^1.6.15
  • http: ^1.3.0
  • And more (see pubspec.yaml)

Server

  • @langchain/openai: ^0.3.14
  • @langchain/pinecone: ^0.1.3
  • @google-cloud/vision: 4.3.2
  • express: ^4.21.1
  • typescript: ^5.7.2
  • And more (see package.json)

Contributing

  1. Fork the repository
  2. Create your feature branch
  3. Commit your changes
  4. Push to the branch
  5. Create a new Pull Request

License

This project is licensed under the MIT License - see the LICENSE.txt file for details.

Created by Oleksandr Samoilenko
Extrawest.com, 2025

About

Flutter mobile and web app for simplifying learning process. Capable of working with pdf, jpeg, txt, doc files. Can summarize documents and create quizes based on summary

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published