An open API service indexing awesome lists of open source software.

https://github.com/kosa12/squeal-minidbms

Squeal, a mini database-management system (DBMS) project is a Java-based application that provides essential functionalities for managing databases and tables.
https://github.com/kosa12/squeal-minidbms

database-management dbms-project java javaswing mongodb sql

Last synced: 8 months ago
JSON representation

Squeal, a mini database-management system (DBMS) project is a Java-based application that provides essential functionalities for managing databases and tables.

Awesome Lists containing this project

README

          

# SQUEAL - Database Management System (DBMS) 📂

![GIF](https://github.com/kosa12/SQUEAL-MiniDBMS/blob/master/src/main/resources/introgif-ezgif.com-crop.gif)

The Database Management System (DBMS) project is a Java-based application that provides essential functionalities for managing databases and tables in MongoDB. It allows users to view, insert, update, and delete data in MongoDB collections using a user-friendly interface.

![Java](https://img.shields.io/badge/Java-ED8B00?style=for-the-badge&logo=openjdk&logoColor=white)
![MongoDB](https://img.shields.io/badge/MongoDB-4EA94B?style=for-the-badge&logo=mongodb&logoColor=white)

## Key Features 🔑

1. **Database Operations:**
- **Create Database:** Users can create new databases.
- **Drop Database:** Existing databases can be deleted.

2. **Table Operations:**
- **Create Table:** Tables can be created within databases, with customizable attributes and primary keys.
- **Drop Table:** Users can delete tables from databases.
- **Insert Data:** Data can be inserted into tables, populating them with records.
- **Delete Data:** Users can delete specific records or entire rows from tables.

3. **Indexing:**
- **Create Index:** Indexes can be created on tables to improve query performance.

4. **Visual editor:**
- **Insert Data:** Data can be inserted with a visual editor into the MongoDB collection.
- **Delete Data:** The user can delete the data from the MongoDB via selecting the row.

5. **Selection:**
- **Select Data:** Users can retrieve specific data from tables based on specified conditions using SQL SELECT statements.
- **Filtering:** Data retrieval can be filtered using WHERE clauses.
- **Grouping:** Retrieved data can be grouped based on specific attributes using GROUP BY clauses.
- **Aggregate Functions:** Users can perform aggregate functions such as SUM, COUNT, AVG, etc., on selected data.
- **Joins:** Tables can be joined together based on common attributes to retrieve combined data.

## How to Use 💡

1. **Installation:** Clone the repository to your local machine.
```bash
git clone https://github.com/kosa12/MiniDBMS
```
3. **Run the Application:** Start the application by running the main Java program. This will launch the server and the GUI.
4. **Connect to Database:** Connect to the MongoDB database using the provided interface in the GUI.
5. **Visual Editor:** Use the visual editor to insert, delete, or update data records in the database.
6. **Manual Input:** Alternatively, users can input specific commands to perform CRUD operations directly.
7. **Interact with GUI:** Explore the various features of the GUI, including data visualization, query execution, and database management.

## System Requirements 🛠️
- **Java Version:** Java Development Kit (JDK) 8 or later.
- **Network Connectivity:** Internet access is required to connect to remote MongoDB servers. Ensure firewall settings allow communication over the specified port (27017).

## Technologies Used ⚛
[![ForTheBadge built-with-swag](http://ForTheBadge.com/images/badges/built-with-swag.svg)](https://GitHub.com/Naereen/)

1. **Java:** The core programming language used for developing the application logic and server-side functionality.
2. **MongoDB:** A NoSQL database used for storing and managing the structured data.
3. **JSON:** Used for data interchange between the Java application and the MongoDB database.
4. **Socket Programming:** Implemented for client-server communication, allowing multiple clients to interact with the server concurrently.
5. **Swing:** Java's GUI toolkit utilized for building the graphical user interface, providing components such as buttons, text fields, and tables.

## Analytics 📊
![GitHub repo size](https://img.shields.io/github/repo-size/kosa12/MiniDBMS?style=for-the-badge)
![GitHub last commit](https://img.shields.io/github/last-commit/kosa12/MiniDBMS?=red&style=for-the-badge)
![GitHub top language](https://img.shields.io/github/languages/top/kosa12/SQUEL-MiniDBMS?style=for-the-badge)
![GitHub commit activity](https://img.shields.io/github/commit-activity/w/kosa12/SQUEL-MiniDBMS?style=for-the-badge)

## Contributors 🤝
- [Dacz Krisztian](https://github.com/dKriszti15)
- [Kosa Matyas](https://github.com/kosa12)

## License 🎫

This project is licensed under the MIT License