|
1 | 1 | <div align="center">
|
2 | 2 |
|
3 | 3 | <a href="https://makeapullrequest.com"></a>
|
4 |
| -<a href="https://img.shields.io/badge/version-1.0.1-blue"></a> |
| 4 | +<a href="https://img.shields.io/badge/version-1.0.1-blue"></a> |
5 | 5 | 
|
6 | 6 | 
|
7 | 7 |
|
|
16 | 16 | <h1 align="center">Visualize, modify, and build your database with dbSpy!</h1>
|
17 | 17 | <p align="center">An open-source data modeling tool to facilitate relational database development</p>
|
18 | 18 |
|
19 |
| -### New Features with Version 7.0 |
| 19 | +<p align="center"> |
| 20 | + <img src="https://img.shields.io/badge/React-61DAFB?style=flat-square&logo=react&logoColor=black" /> |
| 21 | + <img src="https://img.shields.io/badge/TypeScript-3178C6?style=flat-square&logo=typescript&logoColor=white" /> |
| 22 | + <img src="https://img.shields.io/badge/Express.js-000000?style=flat-square&logo=express&logoColor=white" /> |
| 23 | + <img src="https://img.shields.io/badge/React--Router-EA4335?style=flat-square&logo=reactrouter&logoColor=white" /> |
| 24 | + <img src="https://img.shields.io/badge/React--Flow-00BFFF?style=flat-square&logo=react&logoColor=white" /> |
| 25 | + <img src="https://img.shields.io/badge/Vite-BB99FF?style=flat-square&logo=vite&logoColor=white" /> |
| 26 | + <img src="https://img.shields.io/badge/TailwindCSS-38B2AC?style=flat-square&logo=tailwindcss&logoColor=white" /> |
| 27 | + <img src="https://img.shields.io/badge/Zustand-FACC15?style=flat-square&logo=react&logoColor=black" /> |
| 28 | + <img src="https://img.shields.io/badge/MySQL-00758F?style=flat-square&logo=mysql&logoColor=white" /> |
| 29 | + <img src="https://img.shields.io/badge/PostgreSQL-336791?style=flat-square&logo=postgresql&logoColor=white" /> |
| 30 | + <img src="https://img.shields.io/badge/Axios-5A29E4?style=flat-square&logo=axios&logoColor=white" /> |
| 31 | + <img src="https://img.shields.io/badge/TypeORM-FF5277?style=flat-square&logo=typescript&logoColor=white" /> |
| 32 | + <img src="https://img.shields.io/badge/OAuth2-3B82F6?style=flat-square&logo=oauth&logoColor=white" /> |
| 33 | + <img src="https://img.shields.io/badge/Jest-C21325?style=flat-square&logo=jest&logoColor=white" /> |
| 34 | + <img src="https://img.shields.io/badge/React--Testing--Library-E33332?style=flat-square&logo=testing-library&logoColor=white" /> |
| 35 | + <img src="https://img.shields.io/badge/Docker-2496ED?style=flat-square&logo=docker&logoColor=white" /> |
| 36 | + <img src="https://img.shields.io/badge/AWS-FF9900?style=flat-square&logo=amazonaws&logoColor=black" /> |
| 37 | +</p> |
| 38 | + |
| 39 | +### 🚀 dbSpy v8.0 ✨ New Features |
| 40 | + |
| 41 | +### 🔍 Test New Query Page - a modern querying interface |
| 42 | + |
| 43 | +- Run SQL queries against PostgreSQL or MySQL DBs |
| 44 | +- Live results + metadata: execution time, query name, timestamp |
| 45 | +- Zustand-powered state management |
| 46 | +- Input validation and error handling |
| 47 | +- Component-level Jest + ReactTestLibrary tests |
| 48 | + |
| 49 | +### 💾 View Saved Queries Page |
| 50 | + |
| 51 | +- Access previously saved queries per user |
| 52 | +- Sortable, styled tables with TypeScript typing |
| 53 | +- Track query performance across data models |
| 54 | + |
| 55 | +### 🎨 UI / UX Enhancements |
| 56 | + |
| 57 | +- TailwindCSS redesign: colors, layout, interactions |
| 58 | +- Responsive and fully supported dark/light mode |
| 59 | +- Logo animation integrated in navbar |
| 60 | +- Sidebar and tab layout fixes |
| 61 | + |
| 62 | +### 🛠 Functional Fixes |
| 63 | + |
| 64 | +- Resolved layout shift bugs |
| 65 | +- Optimized backend response handling |
| 66 | +- OAuth (GitHub + local login) |
| 67 | + |
| 68 | +### 📈 Opportunities for Continued Development |
| 69 | + |
| 70 | +- Extend Test Query feature to additional DB types (e.g. Oracle) |
| 71 | +- Persist database sessions across routes |
| 72 | +- Integrate LLMs to suggest efficient queries and schema improvements |
| 73 | +- Add OAuth support for Microsoft accounts |
| 74 | +- Add support for NoSQL (MongoDB) and graph databases |
| 75 | +- Expand UI testing coverage |
20 | 76 |
|
21 |
| --UI is now full widescreen with a drop down menu to allow for more workspace. |
22 |
| --The Save, Load, and Delete features now take filename, and can save schema, and data. |
23 |
| --Deleting certain elements in tables now locates, and also properly delete depedent elements on other tables |
24 |
| --Implemented an algorithm to highlight all edges connected to currently selected table |
25 |
| --Fixed several Issues where certain Elements would not be deleted from a connected database |
26 |
| --Fixed several Issues with show Data terminating react flow |
27 |
| --Fixed several Issues with Edges being rendered too many times, and not deleted |
| 77 | +--- |
28 | 78 |
|
29 |
| -### Use Cases |
| 79 | +### dbSpy v7.0 updates |
30 | 80 |
|
31 |
| -- Connecting to an existing remote PostgreSQL, MySQL, MicroSoftSQL, OracleSQL databases |
32 |
| - - Renders an ER diagram for SCHEMA and DATA of the existing database and provides an interface for users to both modify existing tables and create new tables. A log of changes is stored, and at any point, the user can generate a query containing the changes, such that they are reflected in the existing database. |
33 |
| -- Uploading your database's SQL file |
34 |
| - - Renders an ER diagram for the provided SQL file (db dump) and provides an interface for a user to both modify existing tables and create new tables. Changes are converted into the corresponding queries, which the user can view and execute on their own database outside of dbSpy. |
35 |
| -- Seamlessly visualize relational databases (both SCHEMA and DATA) |
36 |
| - - After connecting database tables with one another, users are able to render the relationship connections of individual tables by clicking on the tables. |
37 |
| -- Creating a database + ER diagram from scratch |
38 |
| - - Provides a canvas for users to create a database by using ER diagrams, thus creating a blueprint for engineering database structures. |
| 81 | +- Full widescreen UI with a dropdown menu for more workspace |
| 82 | +- Enhanced Save, Load, and Delete features that support filenames for saving schema and data |
| 83 | +- Proper deletion of dependent elements across tables |
| 84 | +- Algorithm to highlight edges connected to the selected table |
| 85 | +- Fixed rendering and deletion issues with elements |
| 86 | +- Support for connecting to remote databases (PostgreSQL, MySQL, Microsoft SQL, Oracle SQL) |
| 87 | +- Ability to upload SQL files and render ER diagrams for the provided SQL dump |
| 88 | +- Interface for modifying tables and creating new ones, with changes reflected in the database via generated queries |
| 89 | +- Canvas to create databases and ER diagrams from scratch. |
39 | 90 |
|
40 | 91 | ---
|
41 | 92 |
|
42 |
| -### Key Features |
| 93 | +### 🔑 Key Features |
43 | 94 |
|
44 | 95 | 1. **Database Uploads:** Connect to remote SQL database or upload local SQL files
|
45 | 96 |
|
|
63 | 114 |
|
64 | 115 | 11. **Dark Mode:** Visual settings to provide a more comfortable viewing experience in low-light environements
|
65 | 116 |
|
66 |
| -## <img src="images/dbSpy7_canvas.png"> |
| 117 | +12. **Live Querying and Save Queries** Test SQL queries and also save them to track and analyze query performance across data models (<span style="color:green"><strong>dbSpy V8.0</strong></span>) |
| 118 | + |
| 119 | +## <img src="images/dbspy8homepage.png"> |
| 120 | + |
| 121 | +## <img src="images/dpspy8testquery.png"> |
| 122 | + |
| 123 | +## <img src="images/dpspy8savequery.png"> |
67 | 124 |
|
68 |
| -### Getting started |
| 125 | +### 🛠 Getting started |
69 | 126 |
|
70 | 127 | You will need your own MySQL database for backend functions.
|
71 | 128 |
|
@@ -129,7 +186,7 @@ $ npm run dev
|
129 | 186 |
|
130 | 187 | To connect with the SQL database, we must create and configure SSL certificates.
|
131 | 188 |
|
132 |
| -### Mac |
| 189 | +### macOS |
133 | 190 |
|
134 | 191 | 1. Install mkcert; you can learn more about mkcert [here](https://github.com/FiloSottile/mkcert)
|
135 | 192 |
|
@@ -205,7 +262,7 @@ npm run cert:linux
|
205 | 262 | 2. Click on the confirm icon to delete the column.
|
206 | 263 | 3. Click on the cancel icon to cancel the deletion.
|
207 | 264 |
|
208 |
| -## <img src="images/dbspy7.gif"> |
| 265 | +## <img src="images/dbspyv8.gif"> |
209 | 266 |
|
210 | 267 | ### Adding a foreign key reference to a column
|
211 | 268 |
|
@@ -248,6 +305,11 @@ npm run cert:linux
|
248 | 305 |
|
249 | 306 | ### Credits/Contributors
|
250 | 307 |
|
| 308 | +- Yihe Liu • [LinkedIn](https://www.linkedin.com/in/yiheliu) • [Github](https://github.com/SparrowGecko) |
| 309 | +- Emma Vargas • [LinkedIn](https://www.linkedin.com/in/emmavargas/) • [Github](https://github.com/emma-vargas) |
| 310 | +- Vicky Yue • [LinkedIn](https://www.linkedin.com/in/vickyue/) • [Github](https://github.com/vyue013) |
| 311 | +- Roshumba Llewellyn • [LinkedIn](https://www.linkedin.com/in/roshumballewellyn/) • [Github](https://github.com/roshumba) |
| 312 | +- Revathy Venkataraman • [LinkedIn](https://www.linkedin.com/in/revavenk/) • [Github](https://github.com/reva2024) |
251 | 313 | - David Jones • [LinkedIn](http://www.linkedin.com/in/davidjonesswe/) • [Github](https://github.com/david-jones-git)
|
252 | 314 | - John Ruiz • [LinkedIn](https://www.linkedin.com/in/john-ruiz-profile/) • [Github](https://github.com/johnruiz17)
|
253 | 315 | - Minh Chang • [LinkedIn](https://www.linkedin.com/in/minh-chang/) • [Github](https://github.com/miha-cha)
|
|
0 commit comments