Skip to content

Latest commit

 

History

History
254 lines (173 loc) · 5.53 KB

File metadata and controls

254 lines (173 loc) · 5.53 KB

Contributing Guidelines – Flash Fathom AI

This documentation contains a set of guidelines to help you during the contribution process for Flash Fathom AI — an intelligent flashcard learning platform with AI-powered content generation and spaced repetition study modes.

We welcome all contributions from anyone willing to improve this project!


Code of Conduct

Please read and follow our Code of Conduct.


New to Git & GitHub?

Here are some helpful resources:


Tech Stack

  • Frontend: Next.js 15, TypeScript, Tailwind CSS
  • UI Components: shadcn/ui
  • Authentication: Clerk v6
  • Database: PostgreSQL + Prisma ORM
  • Payments: Razorpay
  • AI: Gemini API
  • Deployment: Vercel

Project Structure

FLASH-FATHOM-AI/
├── .github/                  # GitHub workflows and templates
├── public/                   # Static assets and images
├── prisma/                   # Prisma DB schema and migrations
├── src/
│   ├── app/                  # Next.js App Router
│   │   ├── api/              # API routes
│   │   ├── flashcards/       # Flashcard pages
│   │   ├── pricing/          # Pricing pages
│   │   └── result/           # Payment result page
│   ├── components/           # UI components
│   │   ├── ui/               # shadcn/ui components
│   │   ├── flashcards/       # Flashcard UI
│   │   ├── study/            # Study UI
│   │   └── search/           # Search UI
│   ├── lib/                  # Business logic, hooks
│   └── utils/                # Utility functions
├── .env.example              # Env variables sample
├── Dockerfile                # Docker build file
├── docker-compose.yml        # Docker Compose setup
├── README.md                 # Main documentation

🚀 Local Development Setup

Prerequisites

  • Node.js 18+
  • pnpm
  • PostgreSQL (or Supabase)

⚙️ Setup

  1. Fork & Clone
git clone https://github.com/your-username/Flash-Fathom-AI.git
cd Flash-Fathom-AI
  1. Install pnpm (if not installed)
npm install -g pnpm
  1. Install Dependencies
pnpm install
  1. Configure Environment
cp .env.example .env.local

Update .env.local the .env.example file we have

  1. Database Setup
pnpm prisma db push
pnpm prisma generate
  1. Run the Dev Server
pnpm run dev

Open: http://localhost:3000


🐳 Docker Setup

Option 1: DockerHub

docker pull surajkumar00/flashfathom-ai
docker run -p 3000:3000 surajkumar00/flashfathom-ai

Option 2: Local Build

docker-compose up --build

🤝 How to Contribute

Steps:

  1. ⭐ Star the repo
  2. 🍴 Fork it
  3. Clone your fork:
git clone https://github.com/your-username/Flash-Fathom-AI.git
cd Flash-Fathom-AI
  1. Create a new branch:
git checkout -b feature/your-feature
  1. Make your changes
  2. Commit and push:
git add .
git commit -m "feat: your meaningful commit"
git push origin feature/your-feature
  1. Open a Pull Request

Issue Assignment Process

To self-assign, comment:

.take
  1. Browse open issues
  2. Comment .take
  3. Wait for assignment confirmation

Coding Standards

TypeScript & Component Guidelines

  • Avoid any type
  • Use React functional components and hooks
  • Use naming conventions: camelCase, PascalCase
  • Write meaningful comments for non-trivial logic

Database

  • Use Prisma ORM only
  • Handle DB errors properly
  • Follow service structure patterns

Code Style

  • Lint: ESLint
  • Format: Prettier
  • Commits: Conventional Commits (e.g., feat:, fix:)

Pull Request Guidelines

Before you submit:

  • Self-reviewed
  • Tests added
  • Docs updated
  • No breaking changes (or documented)
  • Screenshots for UI changes

Use the PR template provided in the repo.


Reporting Issues

To report a bug:

  1. Go to Issues tab
  2. Click "New Issue"
  3. Choose a template
  4. Add:
    • Steps to reproduce
    • Expected vs actual result
    • Screenshots
    • OS/browser info

💬 Getting Help

Extra Resources


🙏 Thank You!

Your contributions make Flash Fathom AI better.
Whether it's a bug fix, feature, or doc update — you're appreciated.

Happy Coding! 💙