A modern, full-stack Todo application built with Laravel, Inertia.js, and React. This application provides a seamless user experience with real-time updates and a beautiful, responsive interface.
- 🔐 User Authentication (Register, Login, Logout)
- ✨ Create, Read, Update, and Delete (CRUD) Todo items
- ✅ Mark todos as complete/incomplete
- 📝 Add descriptions to todos
- 🎨 Modern UI with Tailwind CSS
- ⚡ Real-time updates with Inertia.js
- 🔒 User-specific todos (each user can only manage their own todos)
- 📱 Fully responsive design
- Backend: Laravel 12
- Frontend: React 19
- Styling: Tailwind CSS
- State Management: Inertia.js
- Authentication: Laravel Breeze
- Database: SQLite (default) / MySQL / PostgreSQL
Before you begin, ensure you have the following installed:
- PHP 8.2 or higher
- Composer
- Node.js 18 or higher
- Yarn
- SQLite (or MySQL/PostgreSQL)
- Clone the repository:
git clone <repository-url>
cd todo-app- Install PHP dependencies:
composer install- Install JavaScript dependencies:
yarn install- Create environment file:
cp .env.example .env- Generate application key:
php artisan key:generate- Configure your database in
.envfile:
DB_CONNECTION=sqlite- Run migrations:
php artisan migrate:fresh- Start the development servers:
In one terminal:
php artisan serveIn another terminal:
yarn devThe application will be available at http://localhost:8000
-
Registration/Login
- Visit
/registerto create a new account - Visit
/loginto sign in to your account
- Visit
-
Managing Todos
- After logging in, you'll be redirected to the dashboard
- Create a new todo by filling out the form at the top
- Click the checkbox to mark a todo as complete/incomplete
- Click "Edit" to modify a todo's title or description
- Click "Delete" to remove a todo
├── app/
│ ├── Http/
│ │ └── Controllers/
│ │ └── TodoController.php
│ └── Models/
│ └── Todo.php
├── resources/
│ ├── js/
│ │ ├── Pages/
│ │ │ └── Todos/
│ │ │ ├── Components/
│ │ │ │ └── TodoItem.jsx
│ │ │ └── Index.jsx
│ │ └── app.jsx
│ └── views/
│ └── app.blade.php
└── routes/
└── web.php
| Method | Endpoint | Description |
|---|---|---|
| GET | /dashboard | View all todos |
| POST | /todos | Create a new todo |
| PUT | /todos/{id} | Update a todo |
| DELETE | /todos/{id} | Delete a todo |
- All routes are protected by authentication middleware
- Users can only access and modify their own todos
- CSRF protection is enabled
- Input validation is implemented for all requests
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is open-sourced software licensed under the MIT license.