Skip to content

opencodeiiita/Blob

Repository files navigation

This Document is partially made by AI, if you find any issues, please fix it.

Blob - AI-Powered Study Tool

An open-source mobile app that transforms your study materials into interactive flashcards, mind maps, and quizzes using AI.

What is Blob?

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

Privacy-First: Bring Your Own API Key (BYOK)

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

Quick Start

New to coding? No problem! Check out our CONTRIBUTING.md for a step-by-step guide to getting started.

Prerequisites

Before you begin, make sure you have these tools installed on your system:

Required Tools

  1. 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
  2. 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
  3. 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
  4. 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

For Mobile Testing

  1. Expo Go (Mobile App)
    • Test the app on your physical device
    • Download: iOS | Android
    • Why needed: Preview and test the mobile app during development
    • Alternative: Use Android Emulator or iOS Simulator (Mac only)

Optional but Recommended

  • Code Editor: VS Code, Neovim, or your preferred editor
  • GitHub Account: For contributing to the project

Installation

  1. Clone the repository:
git clone https://github.com/opencodeiiita/blob.git
cd blob
  1. Run the automated setup script:
pnpm setup

This interactive script will guide you through the entire setup process, including:

  • Installing dependencies
  • Setting up environment files
  • Starting Docker containers
  • Configuring the database
  1. Start developing! The setup script will guide you through the next steps. For detailed manual setup instructions, see CONTRIBUTING.md.

Project Structure

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.)

Architecture Overview

  • packages/api - Contains all API business logic, tRPC routers, and configuration
  • apps/server - Lightweight HTTP server wrapper (Hono) that serves the API
  • apps/mobile - React Native app that consumes the API with full type safety
  • packages/db - Shared database layer with Drizzle ORM schemas

Tech Stack

This project uses modern, industry-standard technologies:

Backend

  • API Server: Hono - Lightweight, ultrafast web framework
  • Runtime:
    • Development: Node.js with TypeScript (via tsx) - Hot reload, better debugging
    • Production: Bun - Native performance, faster startup
  • 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

Mobile App

  • 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

Development Tools

  • 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

Why These Technologies?

  • 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

Contributing

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

Support

License

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

Ownership

This project is owned and maintained by individual contributors. The hosting GitHub organization claims no ownership, copyright, or control over this repository.

About

Bring your own api key AI slop

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 38