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.
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.
| 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 |
| 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 |
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
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
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)
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 projectFor detailed setup instructions, see each project's README:
| 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 |
β 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
β GUI application development with Python
β Database connectivity and ORM/ODM usage
β Data validation and error handling
β Real-time data synchronization
β CSV import/export functionality
β Python 3.x
β Git version control
β Database-specific tools (Neo4j Browser, MongoDB Compass)
β Data visualization (Matplotlib)
β Data processing (Pandas)
| 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.
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
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.)
Fayaz Noor
- GitHub: @FayazNoor
These projects are for educational purposes. Feel free to use, modify, and distribute as needed for learning.
Last Updated: January 2026