The To-Do App is a powerful, feature-rich task management tool built with modern web technologies. Whether you need to manage daily tasks, keep track of project progress, or simply stay organized, this app has you covered!
- 📝 Add, Edit, Delete Tasks: Manage tasks efficiently.
- ✅ Mark Tasks as Complete: Track your progress with ease.
- 📊 Visual Stats: Use charts to view completed vs. pending tasks.
- 🌍 Multi-language Support: Available in different languages using i18next.
- 👥 User Authentication: Secure login and task management with Clerk.
- 📱 Responsive Design: Optimized for all device sizes.
This app leverages a powerful combination of tools to provide a smooth, fast, and responsive user experience:
- Frontend: React, React Router DOM, Context API
- Styling: Tailwind CSS, Shadcn (for UI components)
- Build Tool: Vite
- State Management: React Context API
- Authentication: Clerk for secure user management
- Database: Supabase (for back-end as a service)
- Charts: Chart.js for data visualization
- Localization: i18next for multilingual support
📦todo-app
┣ 📂public
┣ 📂src
┃ ┣ 📂components
┃ ┣ 📂config
┃ ┣ 📂contextApi
┃ ┣ 📂customHooks
┃ ┣ 📂layouts
┃ ┣ 📂pages
┃ ┣ 📂i18n
┃ ┗ 📜App.jsx
┣ 📜package.json
┗ 📜README.md
To get this project up and running on your local machine:
-
Clone the repository:
git clone https://github.com/your-username/todo-app.git
-
Navigate to the project folder:
cd todo-app -
Install dependencies:
npm install
-
Configure Supabase and Clerk:
- Set up your Supabase instance and Clerk account.
- Create a
.envfile with the necessary environment variables (Supabase URL, API key, Clerk credentials).
-
Run the application:
npm run dev
-
Open your browser and visit
http://localhost:3000to view the app.
The app's design is built with Tailwind CSS, allowing for quick and easy style changes. You can also use Shadcn components to further customize the UI.
For translations, modify or add new languages in the src/i18n folder.
We use Chart.js for visualizing task completion rates. You can find and modify chart components in the src/components/charts folder to customize data representation.
Contributions, issues, and feature requests are welcome!
- Fork the repository.
- Create a new branch (
git checkout -b feature/my-feature). - Commit your changes (
git commit -m 'Add some feature'). - Push to the branch (
git push origin feature/my-feature). - Open a Pull Request.