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.
- 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
- React
- TypeScript
- Tailwind CSS
- React Toastify
- Lucide Icons
- Canvas Confetti
- Node.js
- Express
- TypeScript
- Supabase
- Slack Web API
- Node.js (v14 or higher)
- npm/yarn
- Supabase account
- Slack workspace with webhook URL
- Clone the repository:
git clone https://github.com/yourusername/todo-summary-assistant.git
cd todo-summary-assistant
- Frontend Setup:
cd frontend
npm install
Create .env
file in frontend directory:
VITE_API_URL=http://localhost:5000/api
- 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
- Create a new project in Supabase
- 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())
);
- Start the backend:
cd backend
npm run dev
- Start the frontend:
cd frontend
npm run dev
The application will be available at http://localhost:5173
- Add todos using the input field
- Click the checkbox to mark todos as complete
- Use the filter tabs to view All/Pending/Completed todos
- Click "Generate & Send Summary to Slack" to send a summary to your Slack channel
- Toggle dark/light mode using the theme switcher
GET /api/todos
- Get all todosPOST /api/todos
- Create a new todoPUT /api/todos/:id
- Edit a todoDELETE /api/todos/:id
- Delete a todo
POST /api/todos/summarize
- Generate and send summary to Slack
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details
- React for the frontend framework
- Supabase for the backend database
- Slack for integration capabilities
- OpenAI for LLM capabilities
Pillagolla Jayakrishna
📎 GitHub
This project is for educational/demo purposes. Feel free to fork and build on it.