Skip to content

jayakrishna1509/Todo-Summary-Assistant

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Todo Summary Assistant 📝

A modern todo application that helps manage tasks and generates summaries directly to Slack. Built with React, Node.js, Express, TypeScript, Supabase, and Slack integration.

Features ✨

  • Create, read, edit, and delete todos
  • Mark todos as complete/incomplete
  • Filter todos by status (All, Pending, Completed)
  • Dark/Light mode support
  • Generate and send todo summaries to Slack
  • Responsive design
  • Real-time database updates
  • Error handling and notifications

Tech Stack 🛠️

Frontend

  • React
  • TypeScript
  • Tailwind CSS
  • React Toastify
  • Lucide Icons
  • Canvas Confetti

Backend

  • Node.js
  • Express
  • TypeScript
  • Supabase
  • Slack Web API

Getting Started 🚀

Prerequisites

  • Node.js (v14 or higher)
  • npm/yarn
  • Supabase account
  • Slack workspace with webhook URL

Installation

  1. Clone the repository:
git clone https://github.com/yourusername/todo-summary-assistant.git
cd todo-summary-assistant
  1. Frontend Setup:
cd frontend
npm install

Create .env file in frontend directory:

VITE_API_URL=http://localhost:5000/api
  1. Backend Setup:
cd backend
npm install

Create .env file in backend directory:

PORT=5000
SUPABASE_URL=your_supabase_url
SUPABASE_KEY=your_supabase_anon_key
SLACK_WEBHOOK_URL=your_slack_webhook_url

Database Setup

  1. Create a new project in Supabase
  2. Create a todos table with the following schema:
create table todos (
  id bigint generated by default as identity primary key,
  text text not null,
  completed boolean default false,
  created_at timestamp with time zone default timezone('utc'::text, now())
);

Running the Application

  1. Start the backend:
cd backend
npm run dev
  1. Start the frontend:
cd frontend
npm run dev

The application will be available at http://localhost:5173

Usage 📖

  1. Add todos using the input field
  2. Click the checkbox to mark todos as complete
  3. Use the filter tabs to view All/Pending/Completed todos
  4. Click "Generate & Send Summary to Slack" to send a summary to your Slack channel
  5. Toggle dark/light mode using the theme switcher

API Endpoints 🔌

Todos

  • GET /api/todos - Get all todos
  • POST /api/todos - Create a new todo
  • PUT /api/todos/:id - Edit a todo
  • DELETE /api/todos/:id - Delete a todo

Summary

  • POST /api/todos/summarize - Generate and send summary to Slack

Contributing 🤝

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License 📄

This project is licensed under the MIT License - see the LICENSE file for details

Acknowledgments 🙏

  • React for the frontend framework
  • Supabase for the backend database
  • Slack for integration capabilities
  • OpenAI for LLM capabilities

👨‍💻 Author

Pillagolla Jayakrishna
📎 GitHub


🌟 License

This project is for educational/demo purposes. Feel free to fork and build on it.