Skip to content

Repository files navigation

Python CRUD Desktop Application

A desktop CRUD application developed with Python, Tkinter, and SQLite.

The project provides a graphical interface for managing users, user accounts, administrative operations, and messages through a local SQLite database.

Note: This project was developed as an educational project to practice Python, object-oriented programming, GUI development, database operations, and CRUD concepts.

Features

  • User registration and login
  • Admin registration and authentication
  • User management
  • Add, edit, search, and remove users
  • Password reset functionality
  • User and admin panels
  • Message management
  • Message starring and deletion
  • Captcha-based registration and login validation
  • SQLite database integration
  • Graphical user interface built with Tkinter
  • Password hashing using SHA-512

Technologies

  • Python
  • Tkinter — Graphical User Interface
  • SQLite — Local database
  • Pillow (PIL) — Image handling
  • Git / GitHub — Version control and project hosting

Project Structure

Python-CRUD-SQLite/
│
├── User_Frontend.py
├── User_Backend.py
│
├── Add.png
├── Back.png
├── delete.png
├── Edit.png
├── Panel.png
├── Refresh.png
├── Reset password.png
├── Search.png
├── Send Message.png
├── star.png
│
├── requirements.txt
├── .gitignore
└── README.md

Note: The SQLite database file (Server.db) is not included in the repository. It is created locally by the application when needed.

Architecture

The application is divided into two main Python modules:

Tkinter GUI
     │
     ▼
User_Frontend.py
     │
     ▼
User_Backend.py
     │
     ▼
SQLite Database
     │
     ▼
Server.db

Frontend

User_Frontend.py contains the graphical user interface built with Tkinter.

It handles:

  • Registration
  • Login
  • User interface
  • Admin interface
  • User management screens
  • Message management
  • Input validation
  • Interaction with backend functions

Backend

User_Backend.py handles database-related operations using SQLite.

It contains separate classes for:

  • Validation and database queries
  • User operations
  • Admin operations

Database

The application uses SQLite as a local database.

The database is created automatically by the application when it is run.

The database contains tables for:

  • Users
  • Administrators
  • Messages

The database is used for storing account information, authentication data, and messages.

The database file (Server.db) is intentionally excluded from the GitHub repository.

Screenshots

Application Screenshot

Installation

1. Clone the repository

git clone https://github.com/ShadowWolf-mh/Python-CRUD-SQLite.git

2. Open the project directory

cd Python-CRUD-SQLite

3. Install dependencies

pip install -r requirements.txt

4. Run the application

python User_Frontend.py

The SQLite database will be created locally when the application runs.

Requirements

  • Python 3.x
  • Pillow
  • Windows

Tkinter and SQLite are included with standard Python installations.

Learning Objectives

This project was developed to practice and demonstrate experience with:

  • Python programming
  • Object-oriented programming
  • GUI development
  • CRUD operations
  • SQLite database interaction
  • SQL queries
  • User authentication
  • Input validation
  • Basic application architecture
  • Working with multiple Python modules

Project Status

This is an educational project and is not intended to be a production-ready application.

The project represents an earlier stage of my Python development journey and is preserved as part of my programming portfolio.

About

A desktop CRUD application built with Python, Tkinter, and SQLite, featuring user registration, authentication, admin management, and messaging functionality

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages