Tiny Tasks was created as part of Tech Sister's October 2024 AI Challenge, which was aimed at exploring Large Language Models (LLMs) and experimenting with the Google Gemini API. As someone who usees to-do lists every day, I developed Tiny Tasks to help boost my productivity with the help of Generative AI.
Tiny Tasks is a productivity app that uses generative AI to break break-down high-level tasks that are input by the user into smaller, actionable subtasks. Functionalities include allowing users to add, view, edit, and delete both tasks and AI-generated subtasks. It was built using Python, Google Gemini API, and Streamlit.
You can access the Tiny Tasks app here!
Follow these steps to locally run the Tiny Tasks app:
Make sure you have the following installed:
- Python (version 3.7 or higher) 🐍
- pip (Python package installer) 📦
-
Clone this Repository 💻
- Open your terminal (or command prompt) and run the following command:
git clone https://github.com/maggienegm/tech-sisters-ai-challenge.git
- Open your terminal (or command prompt) and run the following command:
-
Create a Virtual Environment 🌱
- Navigate to the root of the project directory:
cd tech-sisters-ai-challenge
- Create a virtual environment:
python -m venv venv
- Activate the virtual environment:
- On Windows:
venv\Scripts\activate
- On macOS/Linux:
source venv/bin/activate
- On Windows:
- Navigate to the root of the project directory:
-
Install Requirements 📜
- Before installing the necessary packages, make sure to navigate to the
/app
directory. You can do this by running the following command in your terminal:cd app
- Install the necessary packages by running:
pip install -r requirements.txt
- Before installing the necessary packages, make sure to navigate to the
-
Run the Streamlit App 🚀
- To run the Streamlit application, use the following command in your terminal:
streamlit run app.py
- Once the app is running, you can access it in your web browser at http://localhost:8501.
- To run the Streamlit application, use the following command in your terminal:
-
UI Framework: Streamlit is excellent for rapid prototyping, but it has some limitations. These include a small component library, limited flexibility over UI customization and responsiveness, and full page reloads with every component interaction. These can all negatively affect the user experience. To overcome these challenges, I would use a frontend framework like React or Vue.js, which provides a wider range of UI components, better state management, and a smoother, more dynamic interface without requiring full page reloads.
-
Storage: Currently, Streamlit's
session_state
doesn't persist data across sessions, meaning that users lose their progress after refreshing the page. To address this, I would implement persistent storage using a backend database or local storage to ensure data is retained between page sessions.