AI-Powered Database Design & Schema Management Platform
A revolutionary full-stack SaaS platform that transforms database schema design through intelligent visual modeling. Create complex database schemas instantly using AI-powered chat interface, drag-and-drop visual designer, and real-time collaboration features.
- Natural Language Processing: Convert plain English descriptions into database schemas
- Google Gemini AI Integration: Advanced AI understanding for complex database relationships
- Smart Field Detection: Automatically identifies primary keys, foreign keys, and data types
- Relationship Inference: AI suggests optimal table relationships and constraints
- Interactive Canvas: Drag-and-drop interface powered by ReactFlow
- Animated Table Nodes: Beautiful animations and transitions for enhanced UX
- Real-time Relationship Mapping: Visual connection between tables with constraint visualization
- Responsive Design: Mobile-optimized interface with touch-friendly controls
- Multi-user Editing: Collaborate on schemas with team members in real-time
- Version Control: Track schema changes and maintain version history
- Live Updates: See changes from other users instantly
- Schema Sharing: Public/private schema sharing with access controls
- CRUD Operations: Full create, read, update, delete operations for schemas
- SQL Generation: Auto-generate SQL DDL with proper constraints and indexes
- Schema Export: Export to various formats (SQL, JSON, etc.)
- Schema Import: Load existing schemas and convert to visual format
- Firebase Google OAuth: Secure Google sign-in integration
- Email Verification: Complete email verification workflow
- JWT Authentication: Secure token-based session management
- Password Reset: Secure password recovery system
schemaBuilder/
βββ src/
β βββ components/ # Reusable UI components
β β βββ designer/ # Visual schema designer
β β βββ chat/ # AI chat interface
β β βββ auth/ # Authentication components
β β βββ ui/ # Base UI components
β βββ hooks/ # Custom React hooks
β βββ services/ # API service layer
β βββ contexts/ # React context providers
β βββ types/ # TypeScript type definitions
β βββ utils/ # Utility functions
BackEnd/
βββ cmd/ # Application entry points
βββ internal/
β βββ handlers/ # HTTP request handlers
β βββ services/ # Business logic layer
β βββ repository/ # Data access layer
β βββ models/ # Data models
β βββ middleware/ # HTTP middleware
β βββ config/ # Configuration management
βββ pkg/ # Shared packages
βββ database/ # Database connections
βββ logger/ # Logging utilities
- Node.js 18+ and npm/yarn
- Go 1.23+
- MongoDB 5.0+
- Firebase Project for authentication
- Google Gemini API Key for AI features
-
Clone the repository
git clone https://github.com/M-awais-rasool/schema-builder.git cd schema-builder/schemaBuilder -
Install dependencies
npm install
-
Environment Configuration
cp .env.example .env
Update
.envwith your configuration:VITE_API_BASE_URL=http://localhost:8080/api VITE_FIREBASE_API_KEY=your_firebase_api_key VITE_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com VITE_FIREBASE_PROJECT_ID=your_project_id VITE_FIREBASE_STORAGE_BUCKET=your_project.appspot.com VITE_FIREBASE_MESSAGING_SENDER_ID=your_sender_id VITE_FIREBASE_APP_ID=your_app_id
-
Start development server
npm run dev
-
Navigate to backend directory
cd ../BackEnd -
Install Go dependencies
make install
-
Environment Configuration
cp .env.example .env
Update
.envwith your configuration:PORT=8080 MONGODB_URI=mongodb://localhost:27017 MONGODB_DATABASE=schema_builder JWT_SECRET=your_jwt_secret_key GEMINI_API_KEY=your_gemini_api_key SMTP_HOST=smtp.gmail.com SMTP_PORT=587 SMTP_USERNAME=your_email@gmail.com SMTP_PASSWORD=your_app_password
-
Start the server
make dev
-
Build and run with Docker Compose
docker-compose up -d
-
View logs
docker-compose logs -f
POST /api/auth/register- User registrationPOST /api/auth/login- User loginPOST /api/auth/verify- Email verificationPOST /api/auth/google- Google OAuth authenticationPOST /api/auth/forgot-password- Password reset requestPOST /api/auth/reset-password- Password reset confirmation
GET /api/schemas- List user schemasPOST /api/schemas- Create new schemaGET /api/schemas/:id- Get schema by IDPUT /api/schemas/:id- Update schemaDELETE /api/schemas/:id- Delete schema
POST /api/ai/chat- AI chat for schema generation
GET /api/users/profile- Get user profilePUT /api/users/profile- Update user profile
npm run dev # Start development server
npm run build # Build for production
npm run lint # Run ESLintmake dev # Start development server with hot reload
make build # Build the application
make lint # Run linter
make format # Format code- ESLint and Prettier for frontend code formatting
- golangci-lint for Go code linting
- Pre-commit hooks for code quality enforcement
- Test coverage reports for both frontend and backend
-
Frontend
npm run build
-
Backend
make build-linux
- Set secure JWT secrets
- Configure production MongoDB URI
- Set up proper CORS origins
- Configure email services
- Set up monitoring and logging
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-feature
- Commit your changes
git commit -m 'Add amazing feature' - Push to the branch
git push origin feature/amazing-feature
- Open a Pull Request
- Follow TypeScript best practices for frontend
- Follow Go coding standards for backend
- Write comprehensive tests for new features
- Update documentation for API changes
- Ensure responsive design for UI changes
This project is licensed under the MIT License - see the LICENSE file for details.
- ReactFlow for the amazing visual editor capabilities
- Google Gemini AI for powerful natural language processing
- Firebase for robust authentication services
- MongoDB for flexible document storage
- Gin Framework for fast HTTP routing in Go
Built with β€οΈ by M. Awais Rasool