Skip to content

Latest commit

 

History

History
244 lines (193 loc) · 10 KB

README.md

File metadata and controls

244 lines (193 loc) · 10 KB

TTL (Todo Task List) TTL

Subtitle

CI CD Coverage Version License Clones

Demo 👀

Demo

Overview

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 ✨.

Description

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 🤗!

Goal

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

Technologies & Tools 🚀 used in TTL:


Python 3.10 HF Transformers FastAPI PostgreSQL SQLAlchemy Poetry Bootstrap 5.3 HTML JavaScript CSS

Prerequisites

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.

Installation

Here are the steps you must follow to install TTL correctly 🎯:

  1. Clone TTL
git clone https://github.com/IsmaelMousa/TTL.git
  1. Navigate to the TTL directory
cd TTL
  1. Setup virtual environment
python3 -m venv .venv
  1. Activate the virtual environment
source .venv/bin/activate
  1. Install the required dependencies
make install

Modules

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.

Usage

Here is how to use the TTL 💁‍♂️:

  1. Run the TTL
make run
  1. Navigate to: http://localhost:8000/ttl/index.html 😀

Tip

To enhance your user experience, I recommend running the backend and frontend separately where:

  1. Execute the backend side by using the instructions provided in Step No.1.
  2. 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.


Feedback 💌

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! 🌹🫵