Skip to content

A collection of three mini database projects demonstrating different database paradigms: relational (SQLite), document-based (MongoDB), and graph-based (Neo4j). Each project includes a Python GUI using Tkinter/CustomTkinter for real-world database integration.

Notifications You must be signed in to change notification settings

FayazNoor/Database-Projects

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

14 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ’Ύ Database-Projects

A comprehensive collection of three mini database projects demonstrating practical implementation of different database paradigms: relational (SQLite), document (MongoDB), and graph (Neo4j) databases with Python GUI applications.

πŸ“Œ Project Overview

This repository contains three independent database projects developed in April 2025, each showcasing different database technologies, data models, and UI frameworks. All projects follow a similar architecture with Python backends, modern GUI interfaces, and practical use cases.

Projects Included

Project Database Purpose UI Framework Status
🎬 SQLite-Project SQLite Personal Expense Tracker Tkinter Complete
πŸ“š MongoDB-Project MongoDB Library Management System CustomTkinter Complete
πŸŽ₯ Neo4j-Project Neo4j Movie Graph Database CustomTkinter Complete

πŸ“Š Tech Stack Overview

Project Database Purpose Tech Stack
πŸ“Š SQLite Relational Expense Tracker Python, Tkinter, SQLite3
πŸ“– MongoDB Document Library Manager Python, CustomTkinter, PyMongo
🎬 Neo4j Graph Movie Explorer Python, CustomTkinter, Neo4j Driver

πŸ“š Project Details

1. πŸ’° SQLite Expense Tracker

Description: A full-featured personal finance application for tracking expenses and income with real-time balance validation.

Features:

  • User authentication (login/registration)
  • Add, categorize, and track expenses
  • Income management from multiple sources
  • Real-time balance validation (prevent overspending)
  • Transaction history with recent 5 entries display
  • Data visualization (pie charts & bar graphs using Matplotlib)

Tech Stack: Python, Tkinter, SQLite3, PIL, Matplotlib

Key Learning: Database constraints, CRUD operations, GUI development, balance validation logic

Suggested Improvements:

  • Edit/Delete Transactions: Allow users to modify or remove existing entries
  • CSV Export: Export expense/income data for external analysis
  • Monthly Reports: Generate monthly summaries with spending trends
  • Budget Setting: Allow users to set budgets per category with alerts
  • Password Encryption: Hash passwords instead of storing plaintext
  • Dark Mode: Add theme toggle (light/dark)
  • Multi-currency Support: Track expenses in different currencies
  • Receipt Upload: Attach images/documents to transactions
  • Recurring Expenses: Set up recurring transactions automatically
  • Search & Filter: Advanced search by date range, category, amount

β†’ Full README


2. πŸ“– MongoDB Library Management

Description: A comprehensive library system for managing book inventory and tracking lending transactions with automatic stock management.

Features:

  • Books collection management (add, update, delete)
  • Dynamic inventory tracking with auto-decrement on lending
  • Lending system with borrower details and return dates
  • Dual-tab interface (Books & Lending)
  • Real-time relationship updates between collections
  • MongoDB document-based data model

Tech Stack: Python, CustomTkinter, MongoDB (PyMongo), ttk (Treeview)

Key Learning: Document databases, embedded documents, reference relationships, collection operations

Suggested Improvements:

  • Overdue Tracking: Highlight books not returned by due date
  • Book Search: Add search by title, author, genre, ISBN
  • Fine System: Calculate and track fines for overdue books
  • Book Ratings: Add user ratings and reviews for books
  • Reservation System: Allow borrowers to reserve unavailable books
  • Email Notifications: Send email reminders for due dates
  • Bulk Import: Import books from CSV/Excel files
  • Advanced Filtering: Filter by genre, author, availability status
  • Member Management: Add borrower profiles and borrowing history
  • Report Generation: Generate circulation reports and popular books list
  • Barcode Scanning: Integrate barcode scanner for quick book checkout
  • Database Backup: Automated backup to MongoDB Atlas or local backup

β†’ Full README


3. 🎬 Neo4j Movie Graph Database

Description: A graph database application for exploring relationships between movies, actors, directors, genres, and countries using Cypher queries.

Features:

  • Graph-based data model with interconnected nodes
  • Netflix-style dark theme UI
  • Movie search with instant relationship exploration
  • Interactive buttons for directors, actors, and countries
  • Rich node properties (runtime, budget, ratings, etc.)
  • Multiple relationship types (DIRECTED_BY, ACTED_IN, IN_GENRE, PRODUCED_IN)
  • CSV data loading with Cypher queries
  • Data normalization scripts

Tech Stack: Python, CustomTkinter, Neo4j, Cypher, Pandas

Key Learning: Graph databases, relationship modeling, Cypher queries, graph traversal

Suggested Improvements:

  • Advanced Search: Search by director, actor, genre, release year, rating
  • Collaboration Network: Show co-actor/co-director networks
  • Recommendation Engine: Suggest similar movies based on genre/rating/cast
  • Timeline Visualization: Interactive timeline of movie releases
  • Budget Analysis: Compare budgets vs. revenue with visualizations
  • Actor Filmography: Complete filmography with filtering options
  • Director Statistics: Director's highest-rated films and trends
  • Genre Analytics: Genre popularity over time
  • Multi-language Support: Handle non-English titles and descriptions
  • Export Queries: Save and export query results to CSV/JSON
  • Graph Statistics: Node counts, relationship counts, database metrics dashboard
  • Mobile Responsiveness: Web version using Flask/Django with graph visualization (Vis.js)

β†’ Full README


πŸš€ Quick Start

Each project can be set up independently. Choose one to get started:

# Clone the repository
git clone https://github.com/FayazNoor/Database-Projects.git
cd Database-Projects

# Choose a project
cd sqlite-project   # or mongodb-project or neo4j-project

# Install requirements and run
pip install -r requirements.txt  # (create if needed)
python main_file.py  # main_file varies by project

For detailed setup instructions, see each project's README:


πŸ“Š Comparison Matrix

Aspect SQLite MongoDB Neo4j
Data Model Relational (Tables) Document Graph
Query Language SQL MongoDB Query API Cypher
Best For Structured data, transactions Flexible schema, documents Relationships
Scalability Single machine Horizontal Horizontal
GUI Framework Tkinter CustomTkinter CustomTkinter
Learning Curve Easy Medium Medium
Real-world Use Personal apps Content management Social networks

πŸŽ“ Learning Outcomes

Database Concepts

βœ“ RDBMS vs NoSQL vs Graph databases
βœ“ Data modeling and schema design
βœ“ CRUD operations in different paradigms
βœ“ Relationship management (relational, embedded, graph)
βœ“ Query optimization and performance

Software Development

βœ“ GUI application development with Python
βœ“ Database connectivity and ORM/ODM usage
βœ“ Data validation and error handling
βœ“ Real-time data synchronization
βœ“ CSV import/export functionality

Tools & Technologies

βœ“ Python 3.x
βœ“ Git version control
βœ“ Database-specific tools (Neo4j Browser, MongoDB Compass)
βœ“ Data visualization (Matplotlib)
βœ“ Data processing (Pandas)


πŸ”„ Development Timeline

Project Started Last Update Status
SQLite Expense Tracker April 2025 April 2025 βœ… Complete
MongoDB Library Manager April 2025 April 2025 βœ… Complete
Neo4j Movie Database April 2025 April 2025 βœ… Complete

Note: These projects were developed as part of a database systems learning and have not been actively maintained since April 2025. They remain excellent reference implementations for learning database concepts.


πŸ“ File Structure

Database-Projects/
β”œβ”€β”€ sqlite-project/
β”‚   β”œβ”€β”€ database.py
β”‚   β”œβ”€β”€ My_app.py
β”‚   β”œβ”€β”€ README.md
β”‚   └── screenshots/
β”œβ”€β”€ mongodb-project/
β”‚   β”œβ”€β”€ Main_app.py
β”‚   β”œβ”€β”€ temp.py
β”‚   β”œβ”€β”€ README.md
β”‚   └── screenshots/
β”œβ”€β”€ neo4j-project/
β”‚   β”œβ”€β”€ ui.py
β”‚   β”œβ”€β”€ queries.txt
β”‚   β”œβ”€β”€ normalize.py
β”‚   β”œβ”€β”€ preprocessing.ipynb
β”‚   β”œβ”€β”€ README.md
β”‚   └── screenshots/
└── README.md

🀝 Contributing

Contributions are welcome! You can:

  • Implement suggested improvements listed above
  • Add bug fixes and optimizations
  • Enhance documentation
  • Add new features
  • Create additional projects using other databases (PostgreSQL, Cassandra, etc.)

πŸ‘¨β€πŸ’» Author

Fayaz Noor


πŸ“„ License

These projects are for educational purposes. Feel free to use, modify, and distribute as needed for learning.


πŸ”— Related Resources


Last Updated: January 2026

About

A collection of three mini database projects demonstrating different database paradigms: relational (SQLite), document-based (MongoDB), and graph-based (Neo4j). Each project includes a Python GUI using Tkinter/CustomTkinter for real-world database integration.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published