# 🎩 Hogwarts Assistant Bot

Welcome to the Hogwarts Assistant Bot – your magical tool for managing pupils and notes! With a set of enchanted commands, you can easily add, update, and search for pupil records and notes, all in the true spirit of Hogwarts.

## 📜 Introduction

The **Hogwarts Assistant Bot** is a Python module designed to help you track Hogwarts pupils, their magical details, and any enchanted notes you might need during your mystical adventures in the Wizarding World.

## ✨ Features

- **📋 Pupil Roster**: Manage the list of pupils, including adding, updating, and deleting records – just like a true Headmaster or Headmistress! Track students’ information, birthdays, and magical milestones.
- **📚 Enchanted Notes**: Keep magical notes with easy search capabilities, perfect for recording spells, potion recipes, and secret messages. All your important information stored securely in your spellbook!

- **🪄 Hogwarts-Themed Experience**: Enjoy an immersive Hogwarts experience as you manage your records with a touch of magic. The interface and commands are inspired by the Wizarding World to make your management tasks feel like casting spells.

---

Get ready to embrace the magic of Hogwarts with the **Hogwarts Assistant Bot**! ⚡️

### ⚙️ Development

To start the Hogwarts Assistant Bot locally:
python -m hogwarts.main

## 📜 Commands

Inside the Hogwarts Assistant Bot, you can use the following commands:

### ✨ General Commands

| Command |               Description               |
| :-----: | :-------------------------------------: |
| `exit`  |          Exit the application.          |
| `help`  | Display the list of available commands. |
| `close` |         Close the application.          |
| `hello` |          Greet the assistant.           |

### 🧑‍🎓 Pupils Management Commands

|      Command      |                 Description                 |
| :---------------: | :-----------------------------------------: |
|    `pupil:add`    |   Add a new pupil to the Hogwarts roster.   |
|   `pupil:show`    |      Show details of a specific pupil.      |
|    `pupil:all`    |      Display the full list of pupils.       |
| `pupil:birthdays` |     Show upcoming birthdays of pupils.      |
|  `pupil:update`   |          Update a pupil's details.          |
|  `pupil:delete`   |  Remove (delete) a pupil from the roster.   |
|  `pupil:search`   | Search for pupils by name or other details. |

### 📚 Notes Management Commands

|    Command     |                  Description                  |
| :------------: | :-------------------------------------------: |
|   `note:add`   |     Add a new note to your magical notes.     |
| `note:delete`  |            Delete a specific note.            |
| `note:update`  |      Update a note with new information.      |
|   `note:all`   |       Display all notes in the system.        |
| `note:search`  |     Search for notes by title or content.     |
| `note:add:tag` | Add a tag (charm) to a note for easy sorting. |
|  `note:sort`   |    Sort notes based on specified criteria.    |

## Installation

To install the Hogwarts module, use the following command:
