An elegant, minimal TODO web application built with Node.js and Express.
This repository demonstrates a simple, well-structured MVC-style Todo list with server-rendered views and clear separation of concerns — ideal as a starter project or learning resource.
✨ Features
- Create, view and remove todo items
- Clean, server-rendered UI (views/)
- Controller-based routing and business logic (controllers/)
- Single-entry point (app.js) with straightforward setup
- Minimal dependencies for easy understanding and extension
Tech stack
- Node.js
- Express
- Server-side templating (views directory — e.g. EJS, Pug, or similar)
- Plain CSS / HTML for styling (or a small CSS framework if added)
Quick demo (local)
- Clone the repo git clone https://github.com/brukcodes/TODO-APP.git
- Install dependencies cd TODO-APP npm install
- Start the app npm start
- Open your browser at http://localhost:3000 (or the PORT you configured)
Note: If you prefer live reload during development, run: npm run dev (If a dev script and nodemon are configured.)
Project structure (high level)
- app.js — application entrypoint, middleware and route registration
- controllers/ — route handlers and business logic
- views/ — server-rendered templates (UI)
- TODO/ — (present in repo; purpose-specific files or examples may live here)
- package.json / package-lock.json — dependencies and scripts
This layout makes it easy to:
- Extend routes in controllers/
- Swap or enhance the view layer in views/
- Add APIs or persist todos in a database with minimal changes
Usage / Routes (typical) The exact routes depend on the app implementation, but common patterns include:
- GET / — show the todo list
- POST /add — add a new todo
- POST /delete — delete one or more todos
- POST /toggle — toggle completed state
Check app.js and controllers/ for the exact endpoints and expected request shapes.
Development tips
- Add persistent storage: swap in a small database (SQLite, MongoDB) or write to a JSON file.
- Add user accounts to make lists-per-user.
- Replace server templates with a frontend framework (React/Vue) and expose a JSON API.
- Add testing (Jest or Mocha) to cover controller logic and integration routes.
Contributing Contributions, suggestions and improvements are welcome.
- Fork the repo
- Create a feature branch (feature/your-feature)
- Open a pull request with a clear description of your changes
- Small, focused PRs are easiest to review
If you want help deciding where to start, open an issue describing the feature or fix.
License This project is provided under the MIT License. See LICENSE for details (or add one if you want this to be explicit).
Contact Maintained by brukcodes — feel free to open issues or reach out via GitHub if you need help or want to collaborate.
Thank you for checking out TODO-APP — simple, clear, and ready to be shaped into something great.