Initial commit: Kivy database interface application with search, add/update, delete functionality and Windows build support
This commit is contained in:
152
README.md
Normal file
152
README.md
Normal file
@@ -0,0 +1,152 @@
|
||||
# Database Manager Kivy App
|
||||
|
||||
A simple Kivy application for managing a MariaDB database with two columns (id and mass) for the `offsystemsCounting` table.
|
||||
|
||||
## Features
|
||||
|
||||
- **Search**: Look up records by ID
|
||||
- **Add/Update**: Add new records or update existing ones
|
||||
- **Delete**: Remove records from the database
|
||||
- **View All**: Display all records in the database
|
||||
- **Auto-create**: Table is created automatically if it doesn't exist
|
||||
|
||||
## Prerequisites
|
||||
|
||||
### MariaDB Server Setup
|
||||
|
||||
1. **Install MariaDB server** (if not already installed):
|
||||
```bash
|
||||
sudo apt update
|
||||
sudo apt install mariadb-server
|
||||
```
|
||||
|
||||
2. **Start MariaDB service**:
|
||||
```bash
|
||||
sudo systemctl start mariadb
|
||||
sudo systemctl enable mariadb
|
||||
```
|
||||
|
||||
3. **Secure MariaDB installation**:
|
||||
```bash
|
||||
sudo mysql_secure_installation
|
||||
```
|
||||
|
||||
4. **Create the database and user**:
|
||||
```bash
|
||||
sudo mysql -u root -p
|
||||
```
|
||||
|
||||
Then run these SQL commands:
|
||||
```sql
|
||||
CREATE DATABASE cantare_injectie;
|
||||
CREATE USER 'omron'@'localhost' IDENTIFIED BY 'Initial01!';
|
||||
GRANT ALL PRIVILEGES ON cantare_injectie.* TO 'omron'@'localhost';
|
||||
FLUSH PRIVILEGES;
|
||||
EXIT;
|
||||
```
|
||||
|
||||
5. **Test the connection**:
|
||||
```bash
|
||||
mysql -u omron -p cantare_injectie
|
||||
```
|
||||
Enter password: `Initial01!`
|
||||
|
||||
## Installation
|
||||
|
||||
1. Install Python 3.7+ if not already installed
|
||||
2. Install the required dependencies:
|
||||
```bash
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
Or using virtual environment:
|
||||
```bash
|
||||
python3 -m venv venv
|
||||
source venv/bin/activate
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
1. **Make sure MariaDB server is running**:
|
||||
```bash
|
||||
sudo systemctl status mariadb
|
||||
```
|
||||
|
||||
2. **Run the application**:
|
||||
```bash
|
||||
python main.py
|
||||
```
|
||||
Or:
|
||||
```bash
|
||||
chmod +x run_app.sh
|
||||
./run_app.sh
|
||||
```
|
||||
|
||||
3. **To search for a record:**
|
||||
- Enter an ID in the "ID" field (max 20 characters)
|
||||
- Click "Search"
|
||||
- If found, the mass will be displayed in the "Mass" field
|
||||
|
||||
4. **To add or update a record:**
|
||||
- Enter both ID and mass value
|
||||
- Click "Add/Update"
|
||||
- If the ID exists, it will be updated; otherwise, a new record will be created
|
||||
|
||||
5. **To delete a record:**
|
||||
- Enter the ID to delete
|
||||
- Click "Delete"
|
||||
- Confirm the deletion in the popup
|
||||
|
||||
6. **To refresh the display:**
|
||||
- Click "Refresh All" to reload all data from the database
|
||||
|
||||
## Database Structure
|
||||
|
||||
The app connects to MariaDB database `cantare_injectie` with the following table structure:
|
||||
|
||||
```sql
|
||||
CREATE TABLE offsystemsCounting (
|
||||
id VARCHAR(20) PRIMARY KEY,
|
||||
mass REAL NOT NULL
|
||||
)
|
||||
```
|
||||
|
||||
## Files
|
||||
|
||||
- `main.py`: Main Kivy application
|
||||
- `database_manager.py`: MariaDB database operations class
|
||||
- `requirements.txt`: Python dependencies
|
||||
- `test_database.py`: Test script for database operations
|
||||
- `run_app.sh`: Startup script
|
||||
- `README.md`: This documentation
|
||||
|
||||
## Connection Settings
|
||||
|
||||
The application connects to MariaDB with these settings:
|
||||
- **Host**: localhost
|
||||
- **Database**: cantare_injectie
|
||||
- **User**: omron
|
||||
- **Password**: Initial01!
|
||||
- **Table**: offsystemsCounting
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
1. **Connection Error 1698**:
|
||||
- Make sure MariaDB is running: `sudo systemctl start mariadb`
|
||||
- Verify user exists and has correct password
|
||||
- Check database exists: `SHOW DATABASES;`
|
||||
|
||||
2. **Access Denied**:
|
||||
- Verify user permissions: `SHOW GRANTS FOR 'omron'@'localhost';`
|
||||
- Reset password if needed: `ALTER USER 'omron'@'localhost' IDENTIFIED BY 'Initial01!';`
|
||||
|
||||
3. **Database/Table doesn't exist**:
|
||||
- The application will create the table automatically
|
||||
- Make sure the database `cantare_injectie` exists
|
||||
|
||||
## Notes
|
||||
|
||||
- IDs must be unique and max 20 characters
|
||||
- Mass values must be valid decimal numbers
|
||||
- The app includes comprehensive error handling and user feedback
|
||||
- All database operations use parameterized queries for security
|
||||
Reference in New Issue
Block a user