A real-time database schema visualization tool that helps developers and DBAs understand and navigate MySQL database structures efficiently. View table relationships, explore data connections, and understand your database architecture with an intuitive interface.
- Live Schema Visualization: Real-time view of your database structure
- Table Relationship Mapping: Understand connections between tables
- Data Preview: Comprehensive view of table contents with full-width display
- Interactive Interface: Seamless navigation through database components
- One-to-Many Joins: View related records across tables
- Many-to-Many Relationships: Explore complex table relationships
- Optimized Layout: Intuitive split-view layout for maximum visibility
- Efficient Data Viewing: View table data, structure, and relationships simultaneously
- Enhanced Selection: Clear visual feedback for selected tables
- Error Handling: Robust error handling for database operations
- Responsive Design: Fully responsive UI for all screen sizes
- Backend: Node.js, Express, mysql2
- Frontend: React (Vite), Tailwind CSS, shadcn/ui
- Database: MySQL
- Tools: dotenv for environment configuration
- Node.js (v14 or higher)
- MySQL Server
- npm or yarn
- Clone the repository
git clone [repository-url]
- Install backend dependencies
cd backend
npm install
- Install frontend dependencies
cd frontend
npm install
- Set up environment variables
cp .env.example .env
# Edit .env with your database credentials
- Start the backend server
cd backend
node src/server.js
- Start the frontend development server
cd frontend
npm run dev
GET /api/tables
- List all database tablesGET /api/table/:tableName
- Get table structureGET /api/table/:tableName/data
- Get table contentsGET /api/table/:tableName/relationships
- Get table relationshipsGET /api/join/:tableName/:foreignKey/:relatedTable/:id
- Get one-to-many related recordsGET /api/many-to-many/:table1/:table2/:junctionTable/:id
- Get many-to-many related records
- Interactive schema diagram
- Database switching capability
- Search functionality
- Schema export options
- Advanced filtering with WHERE clause support
- Pagination for large datasets
- Table statistics and metrics (COUNT, AVG, etc.)
- Structure copy functionality
- Column sorting capability
- Loading states for data fetching
- Table descriptions and metadata
- Enhanced relationship visualization
- Data export functionality
- Query optimization
- Caching mechanisms
- Batch data loading
- Connection pooling
Project Root/
├── Backend/
│ ├── src/
│ │ ├── config/
│ │ │ └── db.js (database configuration)
│ │ ├── controllers/
│ │ │ └── schemaController.js (database queries and logic)
│ │ ├── routes/
│ │ │ └── schemaRoutes.js (API route definitions)
│ │ └── server.js (main server file)
│ ├── .env (environment variables)
│ └── package.json
│
├── Frontend/
│ ├── src/
│ │ ├── components/
│ │ │ ├── TableList.jsx
│ │ │ ├── TableList.css
│ │ │ ├── TableStructure.jsx
│ │ │ ├── TableStructure.css
│ │ │ ├── TableRelationships.jsx
│ │ │ ├── TableRelationships.css
│ │ │ ├── TableDataViewer.jsx
│ │ │ └── ui/
│ │ │ ├── card.jsx
│ │ │ └── table.jsx
│ │ ├── App.jsx
│ │ ├── App.css
│ │ ├── index.css
│ │ └── main.jsx
│ ├── public/
│ ├── components.json (shadcn/ui configuration)
│ ├── jsconfig.json (JavaScript configuration)
│ ├── postcss.config.js (PostCSS configuration)
│ ├── eslint.config.js (ESLint configuration)
│ ├── tailwind.config.js (Tailwind CSS configuration)
│ ├── vite.config.js (Vite configuration)
│ ├── index.html
│ └── package.json
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
- shadcn/ui for the component library
- MySQL community
- React ecosystem
Built with ❤️ for database enthusiasts