A Vanilla JavaScript "Todo List" application with unit tests, ESLint, Prettier, and a development server with Vite. You can run it using Docker or directly with Node.js.
- Fully functional without internet connection
- Once loaded, the application works completely offline
- Tasks are synced when tabs are open simultaneously
HTML | CSS | JavaScript | DOM | localStorage | Broadcast Channel API |
---|---|---|---|---|---|
|
|
|
|
|
|
- π Task Management: Create, edit, and delete todo items
- πΎ Persistent Storage: Tasks persist after browser reload/close using localStorage
- π Offline Functionality: Works completely offline - no internet required
- π Cross-Tab Sync: Real-time synchronization between browser tabs using Broadcast Channel API
- π± Responsive Design: Works seamlessly on desktop, tablet, and mobile devices
- β Validation: Input validation with user-friendly error messages
- π¨ Modern UI: Clean and intuitive user interface
- All tasks are automatically saved to the browser's localStorage
- Data persists even after closing the browser or restarting the computer
- No server required - everything runs client-side
- Instant synchronization between multiple open tabs/windows
- Changes made in one tab immediately appear in all other tabs
- Perfect for users who work with multiple browser windows
Docker | Ubuntu |
---|---|
|
|
NodeJS | npm | Vite | Jest | PostCSS | ESLint | Prettier | Stylelint |
---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
Git | Git Hooks | GitHub Actions | CodeQL | Codecov |
---|---|---|---|---|
|
|
|
|
|
docker-compose up frontend
Open http://localhost:3000 in your browser.
docker-compose run --rm frontend-test
docker-compose down
npm install
npm run dev
Open http://localhost:3000 in your browser.
npm test
npm run lint
npm run format
Command | Description |
---|---|
npm run dev |
Start the local server (Vite ) |
npm test |
Run tests using Jest |
npm run lint |
Run ESLint |
npm run format |
Format code using Prettier |