Challenge

Project 1 - English Dictionary App & Library Book Management System

{"cells": [{"cell_type": "markdown", "metadata": {}, "source": ["# Project 1 - English Dictionary App & Library Book Management System\n\n", "## Part 1: English Dictionary App\n\n", "This is a console-based English Dictionary application that allows users to:\n", "- Add new words with meanings\n", "- Find the meaning of a word\n", "- Update an existing word's meaning\n", "- Exit the application\n\n", "It uses a file **words.txt** to store word-meaning pairs in JSON format."]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["import json\n\n", "def load_words():\n", " try:\n", " with open('words.txt', 'r') as file:\n", " return json.load(file)\n", " except FileNotFoundError:\n", " return {}\n\n", "def save_words(words):\n", " with open('words.txt', 'w') as file:\n", " json.dump(words, file)\n\n", "def add_word():\n", " word = input('Enter word: ').strip().lower()\n", " meaning = input('Enter meaning: ').strip()\n", " words = load_words()\n", " words[word] = meaning\n", " save_words(words)\n", " print('Word added successfully!')\n\n", "def find_meaning():\n", " word = input('Enter word: ').strip().lower()\n", " words = load_words()\n", " print('Meaning:', words.get(word, 'Word not found!'))\n\n", "def update_word():\n", " word = input('Enter word to update: ').strip().lower()\n", " words = load_words()\n", " if word in words:\n", " meaning = input('Enter new meaning: ').strip()\n", " words[word] = meaning\n", " save_words(words)\n", " print('Word updated successfully!')\n", " else:\n", " print('Word not found!')\n\n", "def main():\n", " while True:\n", " print('\\nMain Menu')\n", " print('1. Add a new word')\n", " print('2. Find the meaning')\n", " print('3. Update a word')\n", " print('4. Exit')\n", " choice = input('Enter choice: ').strip()\n", " if choice == '1':\n", " add_word()\n", " elif choice == '2':\n", " find_meaning()\n", " elif choice == '3':\n", " update_word()\n", " elif choice == '4':\n", " print('Exiting...')\n", " break\n", " else:\n", " print('Invalid choice!')\n", "\n", "# Run the dictionary app\n", "# main() # Uncomment to run interactively"]}, {"cell_type": "markdown", "metadata": {}, "source": ["## Part 2: Library Book Management System\n\n", "This is a GUI-based Library Management System using Tkinter and SQLite.\n\n", "### Features:\n", "- Add new books\n", "- Search books\n", "- Display all books\n", "- Delete books\n", "- Issue books\n", "- Exit application"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["import sqlite3\n", "from tkinter import *\n", "from tkinter import messagebox\n\n", "# Database setup\n", "conn = sqlite3.connect('library.db')\n", "cursor = conn.cursor()\n", "cursor.execute('''CREATE TABLE IF NOT EXISTS books (\n", " id INTEGER PRIMARY KEY,\n", " title TEXT,\n", " author TEXT,\n", " year INTEGER,\n", " isbn TEXT)''')\n", "conn.commit()\n\n", "# Tkinter GUI Setup\n", "def add_book():\n", " cursor.execute('INSERT INTO books (title, author, year, isbn) VALUES (?, ?, ?, ?)',\n", " (title_entry.get(), author_entry.get(), year_entry.get(), isbn_entry.get()))\n", " conn.commit()\n", " messagebox.showinfo('Success', 'Book added successfully!')\n", " display_books()\n\n", "def display_books():\n", " cursor.execute('SELECT * FROM books')\n", " rows = cursor.fetchall()\n", " book_list.delete(0, END)\n", " for row in rows:\n", " book_list.insert(END, row)\n\n", "def delete_book():\n", " selected_item = book_list.curselection()\n", " if selected_item:\n", " book_id = book_list.get(selected_item)[0]\n", " cursor.execute('DELETE FROM books WHERE id=?', (book_id,))\n", " conn.commit()\n", " messagebox.showinfo('Success', 'Book deleted successfully!')\n", " display_books()\n", " else:\n", " messagebox.showwarning('Warning', 'Select a book to delete!')\n\n", "# Tkinter Window Setup\n", "root = Tk()\n", "root.title('Library Management')\n", "\n", "Label(root, text='Book Title').grid(row=0, column=0)\n", "title_entry = Entry(root)\n", "title_entry.grid(row=0, column=1)\n\n", "Label(root, text='Author').grid(row=1, column=0)\n", "author_entry = Entry(root)\n", "author_entry.grid(row=1, column=1)\n\n", "Label(root, text='Year').grid(row=2, column=0)\n", "year_entry = Entry(root)\n", "year_entry.grid(row=2, column=1)\n\n", "Label(root, text='ISBN').grid(row=3, column=0)\n", "isbn_entry = Entry(root)\n", "isbn_entry.grid(row=3, column=1)\n\n", "Button(root, text='Add', command=add_book).grid(row=4, column=0)\n", "Button(root, text='Delete', command=delete_book).grid(row=4, column=1)\n", "\n", "book_list = Listbox(root, width=50)\n", "book_list.grid(row=5, column=0, columnspan=2)\n", "\n", "# Run the application\n", "# root.mainloop() # Uncomment to run"]}], "metadata": {}, "nbformat": 4, "nbformat_minor": 4}

Your portfolio, next

Ship work like this
in your own course.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.