A simple task and project manager built with vanilla JavaScript. Create projects, add tasks, link tasks to the projects they belong to, and keep track of everything with built-in search and reporting — all persisted locally in your browser.
- Create, edit, and delete tasks (name, description, due date, priority)
- Create, edit, and delete projects (name, description)
- Link a task to a project when creating it
- View a project's page with its description and all linked tasks
- Search/filter tasks and projects
- Reporting page with date and priority filters
- Data persists in the browser via
localStorage— nothing is lost on refresh - Web Storage API (Local Storage) allowing to reload the page or close it make your data persist
- JavaScript (ES Modules) — no framework, plain DOM manipulation
- Webpack — bundling, with separate
common/dev/prodconfigs - CSS — custom styles, no CSS framework
- Web Storage API —
localStoragefor persistence
- Node.js (includes npm)
# Clone the repository
git clone https://github.com/<your-username>/notls-app.git
cd notls-app
# Install dependencies
npm install
# Start the development server
npm run start or npm startThe app will open automatically in your browser.
| Command | Description |
|---|---|
npm run start |
Runs the app in development mode with live reload |
npm run build |
Builds the app for production into the dist/ folder |
npm run deploy |
Builds and publishes dist/ to GitHub Pages |
src/
├── assets/ # Icons and static files
├── controllers/ # Bridges between services (data) and views (DOM)
├── dom/ # Reusable view components (items, modals, header)
├── models/ # Plain data classes (Task, Project)
├── pages/ # Page-level components (one per screen)
├── service/ # Data layer (TaskService, ProjectService, StorageService)
├─ styles/ # One CSS file per page
package-lock.json
package.json
README.md
webpack.common.js
webpack.dev.js
webpack.prod.js
This project is deployed to GitHub Pages using gh-pages:
npm run build
npm run deployDistributed under the MIT License. See LICENSE for more information.
Rayssa Roberta GitHub: @rayssarrsilva