Skip to content

Nebulo is a web application designed to analyze GitHub codebases. It provides repository analysis, AI-powered question answering, and automated README generation. Users can purchase credits to unlock advanced features.

Notifications You must be signed in to change notification settings

Akshansh029/Nebulo

Repository files navigation

Nebulo: GitHub Codebase Analyzer

Next.js React TypeScript Tailwind CSS Clerk.js tRPC Framer Motion Prisma PostgreSQL

Nebulo is a web application designed to analyze GitHub codebases. It provides repository analysis, AI-powered question answering, and automated README generation. Users can purchase credits to unlock advanced features.

image

Tech Stack

  • Frontend: Next.js, React, TypeScript, Tailwind CSS, Framer Motion
  • Authentication: Clerk.js
  • Backend: tRPC, Prisma ORM, PostgreSQL (NeonDB)
  • AI Integration: Google Gemini API
  • Payments: Razorpay API
  • Others: Vector database for embeddings, GitHub API

Features

  • Landing page with hero section, navigation, and feature highlights
  • Collapsible sidebar for navigation and project selection
  • AI-powered question answering about codebases
  • Automated README generation from the codebase
  • Billing page for purchasing credits
  • Project creation and GitHub repo syncing
  • Responsive UI with protected routes and loading indicators

Screenshots

  • Dashboard page

image

  • QnA page

image

  • Readme generator

image

  • Billing section

image

  • Create project page

image

Usage Instructions

  1. Sign up and log in with Clerk authentication.
  2. Create a project by entering your GitHub repository URL.
  3. Analyze your codebase, ask AI questions, and generate README in the QA/README section.
  4. Use the Billing page to purchase credits if needed.
  5. Navigate easily between projects using the collapsible sidebar.

Project Structure

  nebulo/
  ├── prisma/
  │   └── schema.prisma             # Prisma schema definition
  ├── public/                       # Public assets
  ├── src/
  │   ├── app/
  │   │   ├── (protected)/
  │   │   │   ├── api/
  │   │   │   │   ├── razorpay/
  │   │   │   │   │   └── route.ts   # Razorpay API route
  │   │   │   ├── billing/           # Billing page
  │   │   │   ├── create/            # Project creation page
  │   │   │   ├── dashboard/         # Project dashboard
  │   │   │   ├── join/              # Join project page
  │   │   │   ├── qa/                # AI Q&A page
  │   │   │   └── readme/            # Automated README generation
  │   │   ├── AppSidebar.tsx         # Sidebar component
  │   │   ├── layout.tsx             # Protected layout
  │   │   └── loading.tsx            # Loading spinner
  │   ├── _components/               # Reusable components
  │   ├── api/
  │   │   ├── trpc/                  # tRPC API routes
  │   │   └── webhooks/
  │   │       └── razorpay/
  │   │           └── route.ts       # Razorpay webhook handler
  │   ├── sign-in/                   # Sign-in page
  │   ├── sign-up/                   # Sign-up page
  │   ├── sync-user/                 # Sync GitHub user data
  │   ├── layout.tsx                 # Root layout
  │   └── page.tsx                   # Landing page
  ├── components/                    # UI components
  ├── hooks/
  │   ├── use-mobile.ts              # Mobile detection hook
  │   ├── use-project.ts             # Project context hook
  │   └── use-refetch.ts             # Custom refetch logic
  ├── lib/
  │   ├── gemini.ts                  # Google Gemini integration
  │   ├── github-loader.ts           # GitHub repo loader
  │   ├── github.ts                  # GitHub API helpers
  │   └── utils.ts                   # Utility functions
  ├── server/
  │   ├── api/                       # Server-side API
  │   └── db.ts                      # Prisma client setup
  ├── styles/                        # Global styles
  ├── trpc/                          # tRPC server setup
  ├── env.js                         # Environment validation
  ├── middleware.ts                  # Next.js middleware
  ├── .gitignore
  ├── README.md
  ├── bun.lock
  ├── components.json
  ├── eslint.config.js
  ├── next.config.js
  ├── package.json
  ├── package-lock.json
  ├── postcss.config.js
  ├── prettier.config.js
  ├── start-database.sh
  └── tsconfig.json

Environment Variables

Variable Name Description
DATABASE_URL URL for the database connection.
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY Clerk publishable Key.
CLERK_SECRET_KEY Clerk auth secret key
NEXT_PUBLIC_CLERK_SIGN_IN_URL URL for Clerk sign-in page
NEXT_PUBLIC_CLERK_SIGN_UP_URL URL for Clerk sign-in page
NEXT_PUBLIC_CLERK_SIGN_IN_FALLBACK_REDIRECT_URL Fallback URL for sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_FALLBACK_REDIRECT_URL Fallback URL for sign-up
NEXT_PUBLIC_CLERK_SIGN_UP_FORCE_REDIRECT_URL URL for forced redirect after sign-up
NEXT_PUBLIC_CLERK_SIGN_IN_FORCE_REDIRECT_URL URL for forced redirect after sign-in
GITHUB_TOKEN Personal GitHub token for GitHub API Usage
GEMINI_API_KEY Google Gemini API Key for LLM access.
RAZORPAY_KEY_ID Razorpay Key ID for payment processing.
RAZORPAY_KEY_SECRET Razorpay Key Secret for payment processing.
NEXT_PUBLIC_RAZORPAY_KEY_ID Razorpay Key ID for payment processing.
APP_URL The URL of the deployed application
RAZORPAY_WEBHOOK_SECRET Secret for webhook integration of Razorpay

About

Nebulo is a web application designed to analyze GitHub codebases. It provides repository analysis, AI-powered question answering, and automated README generation. Users can purchase credits to unlock advanced features.

Topics

Resources

Stars

Watchers

Forks