This Document is partially made by AI, if you find any issues, please fix it.
An open-source mobile app that transforms your study materials into interactive flashcards, mind maps, and quizzes using AI.
Blob is a study companion app that helps students learn more effectively. Simply provide a syllabus, topic, subject, or course content, and Blob's AI will automatically generate:
- Flashcards - For memorization and quick recall
- Mind Maps - For visualizing connections between concepts
- Quizzes - For testing your knowledge
- More - want something else too? discussions are open, stage is yours
Blob uses a "Bring Your Own API Key" model, meaning you use your own AI service API key (like OpenAI, Anthropic, etc.). This ensures:
- You control your data
- You only pay for what you use
New to coding? No problem! Check out our CONTRIBUTING.md for a step-by-step guide to getting started.
Before you begin, make sure you have these tools installed on your system:
-
Node.js (v18 or higher)
- JavaScript runtime that powers the development environment
- Download: nodejs.org (get the LTS version)
- Check if installed:
node --version - Why needed: Runs the API server, build tools, and development scripts
-
pnpm (Package Manager)
- Fast, efficient package manager for installing project dependencies
- Install:
npm install -g pnpm - Check if installed:
pnpm --version - Why needed: Manages monorepo workspaces and installs all project dependencies
-
Git (Version Control)
- Version control system for tracking code changes
- Download: git-scm.com
- Check if installed:
git --version - Why needed: Clone the repository and manage your contributions
-
Docker (Container Platform)
- Runs PostgreSQL database in an isolated container
- Download: docker.com/products/docker-desktop
- Check if installed:
docker --version - Why needed: Provides local PostgreSQL database for development
- Note: Make sure Docker Desktop is running before setup
- Expo Go (Mobile App)
- Code Editor: VS Code, Neovim, or your preferred editor
- GitHub Account: For contributing to the project
- Clone the repository:
git clone https://github.com/opencodeiiita/blob.git
cd blob- Run the automated setup script:
pnpm setupThis interactive script will guide you through the entire setup process, including:
- Installing dependencies
- Setting up environment files
- Starting Docker containers
- Configuring the database
- Start developing! The setup script will guide you through the next steps. For detailed manual setup instructions, see CONTRIBUTING.md.
blob/
├── apps/
│ ├── server/ # HTTP server (Hono) that serves the API
│ └── mobile/ # Expo React Native mobile app
├── packages/
│ ├── api/ # API logic (tRPC routers and setup)
│ └── db/ # Database layer with Drizzle ORM
├── docs/ # Documentation
└── scripts/ # Utility scripts (setup, etc.)
packages/api- Contains all API business logic, tRPC routers, and configurationapps/server- Lightweight HTTP server wrapper (Hono) that serves the APIapps/mobile- React Native app that consumes the API with full type safetypackages/db- Shared database layer with Drizzle ORM schemas
This project uses modern, industry-standard technologies:
- API Server: Hono - Lightweight, ultrafast web framework
- Runtime:
- RPC Layer: tRPC v11 - End-to-end typesafe APIs
- Database ORM: Drizzle ORM - TypeScript ORM with great DX
- Database: PostgreSQL
- Local development: Docker PostgreSQL
- Production: Neon Postgres (serverless PostgreSQL)
- Validation: Zod - TypeScript-first schema validation
- Framework: Expo - React Native framework
- UI Library: React Native - Cross-platform mobile development
- Routing: Expo Router - File-based routing
- Styling: NativeWind - Tailwind CSS for React Native
- State Management: Zustand - Lightweight state management
- Data Fetching: TanStack Query (React Query) with tRPC
- Monorepo: Turborepo - High-performance build system
- Package Manager: pnpm - Fast, disk space efficient
- Language: TypeScript - Type-safe JavaScript
- Linting: ESLint - Code quality
- Formatting: Prettier - Code formatting
- Containerization: Docker - For local PostgreSQL
- Type Safety: TypeScript + tRPC ensures type safety across the entire stack
- Developer Experience: Hot reload with Node.js (dev), fast startup with Bun (production)
- Performance: Hono is extremely fast, Bun provides near-native performance in production
- Scalability: Serverless PostgreSQL (Neon) scales automatically
- Cross-Platform: Single codebase runs on iOS, Android, and Web
- Flexibility: Different runtimes optimized for development vs production use cases
We welcome contributions from developers of all skill levels! Whether you're fixing a typo, adding a feature, or improving documentation, your help is appreciated.
Please read our CONTRIBUTING.md for:
- Development environment setup
- How to run the project locally
- Code style guidelines
- How to submit pull requests
- Issues: Found a bug? Open an issue
- Discussions: Have questions? Start a discussion
- Discord: Join opencodeiiita community
This project is licensed under the MIT License - see the LICENSE file for details.
This project is owned and maintained by individual contributors. The hosting GitHub organization claims no ownership, copyright, or control over this repository.