Generate structured system designs using AI. Describe your requirements and get detailed architecture diagrams, components, and tech stacks powered by Gemini and LangChain. Import GitHub repositories for automated system design generation.
Important
This project is participating in GirlScript Summer of Code 2026.
- Please comment on an issue first to request assignment before starting work.
- Wait for confirmation before opening a PR to avoid duplicate contributions.
- For contribution rules, announcements, and questions, please use the pinned discussion: GSSoC 2026 Discussion
Please also read the contribution guidelines before submitting changes.
- AI-Powered Generation: Leverage Google Gemini and LangChain to create comprehensive system designs from natural language descriptions
- Task Generation: AI-powered task breakdown that converts system architectures into actionable development tasks
- Automatic task categorization (Frontend, Backend, Database, etc.)
- Priority assignment (high, medium, low)
- Time estimates for each task
- Dependency tracking between tasks
- Cached results for instant retrieval
- GitHub Integration: Import and analyze GitHub repositories to automatically generate system architecture diagrams
- Secure OAuth authentication with GitHub
- Repository browsing and file exploration
- Automated repository analysis and design generation
- Encrypted token storage for maximum security
- User Authentication: Secure signup/login with OTP verification, password reset, and profile management
- Generation History: Track and manage all your previous system design generations
- Rate Limiting: Built-in rate limiting to ensure fair usage (1 request per 2 minutes per user)
- Metrics & Monitoring: Prometheus metrics for monitoring AI generation performance, user activity, and system health
- Contact Form: Integrated contact form with email notifications
- Responsive UI: Modern, responsive interface built with Next.js, React, and Tailwind CSS
- Database: MongoDB with Prisma ORM for robust data management
- Frontend: Next.js 16, React 19, TypeScript, Tailwind CSS
- Backend: Next.js API Routes
- Database: MongoDB with Prisma ORM
- Authentication: NextAuth.js with GitHub OAuth
- AI: Google Gemini AI, LangChain
- UI Components: Radix UI, Shadcn/ui
- Email: Nodemailer
- Rate Limiting: Upstash Redis
- Monitoring: Prometheus Client
- Security: AES-256-GCM encryption for sensitive data
- Deployment: Vercel-ready
- Node.js 18+
- pnpm (recommended) or npm/yarn
- MongoDB database
- Google AI API key
- GitHub OAuth App (for repository import)
- Redis (for rate limiting, optional for development)
- Clone the repository:
git clone https://github.com/SATYAM-PRATIBHAN/arcmindAI.git
cd arcmindAI- Install dependencies:
pnpm install- Set up environment variables:
Copy
.env.exampleto.env.localor.envand fill in the required values:
cp .env.example .envRequired environment variables:
Database & Authentication:
DATABASE_URL: MongoDB connection string (example:mongodb+srv://<user>:<password>@cluster.mongodb.net/dbname)NEXTAUTH_SECRET: A random string used for NextAuth session encryptionNEXTAUTH_URL: Your application URL (e.g.,http://localhost:3000for development)JWT_SECRET: Secret key for JWT token signing
Google OAuth & AI:
GOOGLE_CLIENT_ID: Google OAuth 2.0 Client ID (for login)GOOGLE_CLIENT_SECRET: Google OAuth 2.0 Client SecretGOOGLE_REFRESH_TOKEN: For server-side Google API accessGOOGLE_REDIRECT_URI: Redirect URI registered with GoogleGEMINI_API_KEY: Google Gemini AI API Key
GitHub Integration:
GITHUB_CLIENT_ID: GitHub OAuth App Client IDGITHUB_CLIENT_SECRET: GitHub OAuth App Client SecretENCRYPTION_KEY: 32-byte encryption key for secure token storage (generate with:node -e "console.log(require('crypto').randomBytes(32).toString('hex'))")
Rate Limiting:
UPSTASH_REDIS_REST_URL: Upstash Redis REST API URL (for rate limiting)UPSTASH_REDIS_REST_TOKEN: Upstash Redis REST token
Request Limits:
API_BODY_LIMIT_BYTES: Maximum allowed request body size in bytes for/api/*routes. Requests exceeding this limit receive HTTP 413. Optional — defaults to768000(750 KB) if unset or invalid.
Email & Media:
ADMIN_EMAIL: Email of the admin (notifications, etc.)CLOUDINARY_CLOUD_NAME: Cloudinary cloud name for image uploadsCLOUDINARY_API_KEY: Cloudinary API keyCLOUDINARY_API_SECRET: Cloudinary API secret
Public:
NEXT_PUBLIC_BASE_URL: Public base URL of the deployed app
- Set up the database:
pnpm prisma generate
pnpm prisma db push- Run the development server:
pnpm devOpen http://localhost:3000 with your browser to see the result.
- Sign up with email verification
- Login with email/password
- OTP verification for account security
- Password reset functionality
- Navigate to the generate page
- Describe your system requirements in natural language
- Receive structured system design with architecture diagrams, components, and tech stack recommendations
-
Connect GitHub Account
- Navigate to the Import page
- Click "Connect GitHub" to authenticate via OAuth
- Your GitHub access token is encrypted and stored securely
-
Browse Repositories
- View all your GitHub repositories
- Search and filter repositories
- Select a repository to import
-
Explore Repository
- Browse repository file structure
- View file contents directly in the browser
- Supports both text files and images
-
Generate System Design
- Click "Generate System Design" to analyze the repository
- AI automatically analyzes:
- Architecture patterns and structure
- Dependencies and frameworks
- Database schemas and ORMs
- API endpoints and routes
- Infrastructure and deployment configs
- Testing frameworks
- Receive a comprehensive Mermaid architecture diagram
-
Update Designs
- Edit generated Mermaid diagrams
- Save changes to the database
- Reset to original if needed
After generating a system design (either from natural language or GitHub import), you can get an AI-powered task breakdown:
-
Access Task Breakdown
- Navigate to any generated design
- Click on the "Tasks" or "View Tasks" button
- AI automatically generates tasks if not already cached
-
Task Organization
- Tasks are automatically categorized by area (Frontend, Backend, Database, DevOps, etc.)
- Each task includes:
- Title: Clear, actionable task name
- Description: Detailed explanation of what needs to be done
- Priority: High, medium, or low priority assignment
- Estimated Hours: Time estimate for completion
- Dependencies: Other tasks that must be completed first
-
Project Overview
- View total task count
- See total estimated hours
- Track high-priority tasks
- Monitor progress by category
-
Caching
- Generated tasks are cached in the database
- Instant retrieval on subsequent visits
- Consistent task breakdown for team collaboration
- View all previous generations
- Filter and search through your design history
- Access metrics dashboard for generation statistics
- Monitor AI performance and user activity
- Encrypted Storage: All GitHub access tokens are encrypted using AES-256-GCM before storage
- Server-Side Operations: GitHub API calls are proxied through backend endpoints
- No Frontend Exposure: Tokens never reach the frontend or client-side code
- Secure Proxy Endpoints:
/api/github/status- Check connection status/api/github/repos- Fetch user repositories/api/github/repo-info- Get repository information/api/github/repo-tree- Fetch repository file tree/api/github/file-content- Get file contents/api/analyze-repository- Analyze repository structure
pnpm dev- Start development serverpnpm build- Build for productionpnpm start- Start production serverpnpm lint- Run ESLintpnpm format- Format code with Prettierpnpm prisma:studio- Open Prisma Studio for database managementpnpm prisma:generate- Generate Prisma Clientpnpm prisma:push- Push schema changes to database
This project uses Husky and lint-staged to ensure code quality. A pre-commit hook automatically runs:
- ESLint with
--fixto catch and fix linting errors. - Prettier to ensure consistent code formatting.
This happens automatically whenever you run git commit. If there are unfixable errors, the commit will be blocked until they are resolved.
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
- Push your code to GitHub
- Connect your repository to Vercel
- Add environment variables in Vercel dashboard (see Installation section)
- Important: Make sure to add the
ENCRYPTION_KEYenvironment variable - Deploy
Check out our Next.js deployment documentation for more details.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Thanks goes to these wonderful people for contributing to this project ❤️
This project is licensed under the MIT License - see the LICENSE file for details.