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 frontendOpen http://localhost:3000 in your browser.
docker-compose run --rm frontend-testdocker-compose downnpm installnpm run devOpen http://localhost:3000 in your browser.
npm testnpm run lintnpm 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 |