Skip to content

A basic todo app with html, css, js and jwt auth and file based database. Supports multi device logins for a user.

Notifications You must be signed in to change notification settings

Deepcode007/Todo-app-basic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“ Organized - Secure Todo Dashboard

A sleek, dark-themed Todo Application built with Node.js and Vanilla JavaScript. This application features a custom file-based database and implements JWT (JSON Web Tokens) for secure, stateless authentication.

Dashboard Preview Login Preview

πŸš€ Key Features

πŸ” Secure Authentication (JWT)

  • JWT Authorization: Uses JSON Web Tokens to securely handle user sessions and protect private routes.
  • Stateless Design: No server-side session storage required; the token validates the user.
  • Auto-Logout: Secure handling of token removal upon logout.

🎨 Modern UI/UX

  • Dual-Mode Auth: Smooth toggle animation between Login and Signup forms.
  • Real-time Validation: Instant visual feedback (shake animations, red/green indicators) for user inputs.
  • Dark Mode: A professional, eye-friendly dark theme with high-contrast green accents.

πŸ“Š Dashboard Management

  • Complete CRUD: Create, Read, Update, and Delete tasks seamlessly.
  • Status Tracking: Mark tasks as "Pending" or "Completed" with visual badges.
  • Responsive Grid: Dashboard layout auto-adjusts for different screen sizes.

πŸ“‚ Project Structure

The project follows a modular architecture separating frontend, core logic, and storage:

TODO APP WITH JWT/
β”œβ”€β”€ πŸ“‚ core logic/
β”‚   β”œβ”€β”€ abc.js              # Business logic & Helper functions
β”‚   └── server.js           # Node.js Server & JWT Configuration
β”œβ”€β”€ πŸ“‚ database/
β”‚   β”œβ”€β”€ todoid.txt          # File-based storage for Todo IDs
β”‚   └── users.txt           # File-based storage for User Data
β”œβ”€β”€ πŸ“‚ frontend/
β”‚   β”œβ”€β”€ dashboard.css       # Main application styling
|   β”œβ”€β”€ images/             # Folder with sample images
β”‚   β”œβ”€β”€ dashboard.html      # Dashboard Interface (Protected Route)
β”‚   β”œβ”€β”€ signup.css          # Authentication page styling
β”‚   |── signup.html         # Landing Page (Login/Signup)
|── πŸ“‚ dependencies/        # Dependencies
|   |── package.json
|   └── package-lock.json
└── ℹ️ README.md         # Documentation

πŸ› οΈ Tech Stack
Frontend: HTML5, CSS3 (Animations, Grid/Flexbox), JavaScript (DOM Manipulation).

Backend: Node.js (Custom Server).

Security: JSON Web Tokens (JWT) for Authentication & Authorization.

Database: Custom File-System Storage (TXT based).

⚑️ Getting Started
Follow these steps to run the project locally.

Prerequisites
Node.js installed on your machine.

A code editor like VS Code.

Installation:
1. Clone the repository:

Bash

git clone [https://github.com/yourusername/organized-todo-app.git](https://github.com/yourusername/organized-todo-app.git)
cd organized-todo-app

2. Install Dependencies:

Bash

npm install

3. Run the Server: Navigate to the root directory and start the backend.

Bash

node "core logic/server.js"

4. Launch the App: Open http://localhost:3000 (or your configured port) in your browser. Note: You must log in via the Signup page to generate a JWT token before accessing the Dashboard.

🀝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.

1. Fork the project.

2. Create your Feature Branch (git checkout -b feature/AmazingFeature).

3. Commit your changes (git commit -m 'Add some AmazingFeature').

4. Push to the Branch (git push origin feature/AmazingFeature).

5. Open a Pull Request.

πŸ“„ License
This project is open source and available under the MIT License.

About

A basic todo app with html, css, js and jwt auth and file based database. Supports multi device logins for a user.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published