A simple, modern todo list application built with Node.js, Express, and MySQL that helps users manage their daily tasks effectively.
- View all todos in a clean, organized list
- Scrollable list display
- Clear title display
- State persistence after page refresh
- Create new todo items
- Input field for todo title
- Add button for creation
- Empty todos prevented
- Visual feedback on creation
- New todos appear at the top
- Mark todos as complete/incomplete
- Checkbox for each todo item
- Visual indication of completed items
- Completion status persists
- Real-time status updates
- Delete existing todos
- Add descriptions to todos
- Set due dates for tasks
- Edit existing todos
- Priority flags for important tasks
- Sort todos by due date
- Filter between complete and incomplete todos
Before running this application, make sure you have the following installed:
- Node.js (v12 or higher)
- MySQL/MariaDB
- npm (Node Package Manager)
- Install dependencies:
npm install- Create a
.envfile in the root directory with the following variables:
DB_HOST=your_database_host
DB_USER=your_database_user
DB_PASSWORD=your_database_password
DB_NAME=todo_app
- Set up the database:
- Create a new MySQL database named
todo_app - Import the schema using the provided
schema.sqlfile:
mysql -u your_username -p todo_app < schema.sql- Start the server:
npm start- Open your browser and navigate to:
http://localhost:3000
todo-app/
├── src/
│ ├── views/
│ │ ├── index.html
│ │ └── styles.css
│ ├── routes/
│ │ └── todos.js
│ └── index.js
├── schema.sql
└── README.md
This project is in early development. Currently, only the basic todo list viewing functionality is implemented. Check our UserStories.md file for detailed information about planned features and their implementation status.
- 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 licensed under the MIT License - see the LICENSE file for details.
- Express.js team for the excellent web framework
- MySQL team for the reliable database system