Retain is an intelligent platform that transforms academic materials into personalized, easy-to-understand audio lectures using AI. It helps students and professionals tackle the challenge of processing complex academic content by converting documents into structured, accessible learning experiences.
Students and professionals face several challenges with traditional learning materials:
- Overwhelming volume of complex academic content
- Difficulty in identifying and focusing on key concepts
- Time-consuming process of digesting dense research papers and notes
- Need for more accessible and efficient learning methods
Retain addresses these challenges by:
- Converting academic materials into personalized audio lectures
- Breaking down complex concepts into digestible explanations
- Using AI to identify and focus on key themes
- Providing a structured learning experience through an intuitive interface
- React.js: Core frontend framework
- Tailwind CSS: Utility-first CSS framework for styling
- React Router: For navigation and routing
- Lucide React: For UI icons and components
- ShadCN UI: Component library for modern UI elements
- Node.js & Express: Server framework
- PostgreSQL: Primary database
- AWS S3: Document storage
- Multer: File upload handling
- JWT & Bcrypt: Authentication and security
- CORS: Cross-origin resource sharing
- Flask API: RAG service implementation
- OpenAI GPT-4: For text processing and generation
- Pinecone: Vector database for embeddings
- AutoGen: Multi-agent framework for AI processing
- Cartesia TTS API: Text-to-speech conversion
- Docker & Docker Compose: Containerization and orchestration
- AWS Infrastructure: Cloud hosting and services
- Poetry: Python dependency management
- NPM: Node.js package management
- PDF document upload and processing
- Intelligent text chunking and embedding
- Secure document storage in AWS S3
- Retrieval-Augmented Generation (RAG) for context-aware responses
- Multi-agent processing using AutoGen
- Intelligent summarization and key concept extraction
- Clean, intuitive web interface
- Personal course and lecture management
- Audio lecture generation and playback
- Progress tracking and management
- Node.js (>= 12.0.0)
- Python 3.12
- Docker and Docker Compose
- AWS account credentials
- PostgreSQL
- Clone the repository
- Navigate to the backend directory:
cd backend
- Set up PostgreSQL using Docker:
docker-compose up -d
- Install dependencies:
npm install
- Configure environment variables:
DB_USER=postgres
DB_HOST=localhost
DB_NAME=retain_db
DB_PASSWORD=your_password
DB_PORT=5432
AWS_ACCESS_KEY_ID=your_aws_key
AWS_SECRET_ACCESS_KEY=your_aws_secret
AWS_REGION=your_aws_region
- Start the server:
npm run dev
- Navigate to the frontend directory:
cd frontend
- Install dependencies:
npm install
- Start the development server:
npm start
- Navigate to the RAG service directory
- Set up Python environment:
poetry install
- Configure API keys:
OPENAI_API_KEY=your_key
PINECONE_API_KEY=your_key
- Start the Flask server:
poetry run python agent.py
POST /signup
: User registrationPOST /login
: User authentication
POST /create-course
: Create a new courseGET /courses/:email
: Get all courses for a user
POST /create-lecture
: Create a new lectureGET /lectures/:email/:course_id
: Get all lectures for a course
We welcome contributions! Please read our contributing guidelines and submit pull requests for any improvements.
This project is licensed under the ISC License.
- OpenAI for GPT models
- All contributors and supporters of the project