Welcome to my humble Fullstack project π
This project made with love & patience β€οΈβπ©Ή.
TTL is simulating a todo task list manager application, combined with an AI Assistant β¨.
TTL Where simplicity meets innovation β‘! Seamlessly combining the efficiency of a traditional task manager with the intuitive support of an AI Assistant π, Our application strives to streamline your productivity journey. Whether you're juggling multiple projects, planning your day, or prioritizing your tasks, our user-friendly interface and intelligent assistant are here to support you every step of the way. Let us help you stay organized, focused, and empowered to manage all your tasks with ease. Welcome aboard TTL π€!
The primary aim of TTL πͺ is to enhance my technical and development skills by applying the technologies and tools I've learned. It serves as a journey of learning, starting from building a project from scratch to deployment, traversing through all development stages ποΈ.
Technologies & Tools π used in TTL:
Note
You need also to set up the database, where:
- DB Name: TODO
- DB Username: postgres
- DB Password: test
- DB Host: localhost
- DB Port: 5432
I recommend using PgAdmin4 to facilitate the setup process and also monitor changes.
Here are the steps you must follow to install TTL correctly π―:
- Clone TTL
git clone https://github.com/IsmaelMousa/TTL.git
- Navigate to the TTL directory
cd TTL
- Setup virtual environment
python3 -m venv .venv
- Activate the virtual environment
source .venv/bin/activate
- Install the required dependencies
make install
After completing the installation steps β , the project files should be like this when you open TTL:
TTL
βββ .github
β βββ workflows
β β βββ ci.yml
β β βββ deployment.yml
β βββ demo.gif
βββ .venv
β βββ bin
β βββ include
β βββ lib
β βββ .gitignore
β βββ pyvenv.cfg
βββ assistants
β βββ __init__.py
β βββ chat.py
βββ dependencies
β βββ __init__.py
β βββ util.py
βββ errors
β βββ __init__.py
β βββ custom.py
βββ infrastructures
β βββ crud
β β βββ __init__.py
β β βββ task.py
β βββ __init__.py
β βββ database.py
βββ models
β βββ __init__.py
β βββ task.py
βββ routers
β βββ __init__.py
β βββ assistant.py
β βββ task.py
βββ schemas
β βββ __init__.py
β βββ assistant.py
β βββ task.py
βββ tests
β βββ __init__.py
β βββ assistants_chat.py
β βββ dependencies_util.py
β βββ infrastructures_crud_task.py
β βββ infrastructures_database.py
β βββ models_task.py
β βββ routers_assistant.py
β βββ routers_task.py
β βββ schemas_assistant.py
β βββ schemas_task.py
β βββ utils_config.py
β βββ utils_logger.py
βββ utils
β βββ __init__.py
β βββ config.py
β βββ logger.py
βββ views
β βββ images
β β βββ website-icon.png
β βββ index.html
β βββ index.js
β βββ style.css
βββ .gitignore
βββ CODE_OF_CONDUCT.md
βββ config.yml
βββ LICENSE.md
βββ main.py
βββ Makefile
βββ poetry.lock
βββ pyproject.toml
βββ README.md
βββ SECURITY.md
Here is a summary π for the purpose of each major module or component in TTL:
Module | Description |
---|---|
infrastructures |
Manages database-related elements, including preparation, maintenance, and operations. |
main.py |
Serves as the entry point, initiating the application. |
config.yml |
Contains main configurations such as database settings, ...etc. |
models |
Defines the schemas of the database tables/entities. |
schemas |
Defines the schemas of the Pydantic models used in the application. |
routers |
Manages and creates the application's routers/endpoints. |
utils |
Houses common utilities/logic utilized throughout the application, including logging mechanisms, ...etc. |
errors |
Prepares and customizes exceptions for handling specific issues. |
tests |
Handles the preparation and execution of unit tests. |
dependencies |
Manages and creates dependencies utilized for various operations within the application. |
assistants |
Contains the hugging face transformers models, for the specific NLP tasks. |
views |
Represents the user interface (UI) files, or can say front-end side. |
Here is how to use the TTL πββοΈ:
- Run the TTL
make run
- Navigate to: http://localhost:8000/ttl/index.html π
Tip
To enhance your user experience, I recommend running the backend and frontend separately where:
- Execute the backend side by using the instructions provided in Step No.1.
- Execute the frontend side by opening the index.html file in the browser.
This approach ensures optimal performance and usability for both sides of the application.
We value your feedback and suggestions π€! If you've used TTL or explored its features, we'd love to hear from you π«‘. share your thoughts, ideas, or any issues you encountered while using the application π‘.
Feel free to open an issue on GitHub or reach out to us via email with your feedback. Your feedback helps us improve TTL and make it even better for our users π.
Thank You! πΉπ«΅