Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pgm-benobira/todoo
To do application with authentication made using Handlebars where the user can use CRUD operations to the SQLite3 database.
https://github.com/pgm-benobira/todoo
crud expressjs jwt knexjs mvc nodejs objectionjs sqlite3
Last synced: 8 days ago
JSON representation
To do application with authentication made using Handlebars where the user can use CRUD operations to the SQLite3 database.
- Host: GitHub
- URL: https://github.com/pgm-benobira/todoo
- Owner: pgm-benobira
- Created: 2024-06-15T19:42:14.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-06-15T19:43:42.000Z (7 months ago)
- Last Synced: 2024-11-10T18:45:45.594Z (2 months ago)
- Topics: crud, expressjs, jwt, knexjs, mvc, nodejs, objectionjs, sqlite3
- Language: Handlebars
- Homepage:
- Size: 417 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Install
- npm i
- make.env
- start app 'npm run start'## In the application
### To log in:
- Email: [email protected]
- Password: 123# Application Overview
## 1. Functionality
### 1.1 Authentication: Sign-in and Sign-out
- Display sign-in screen when user is not logged in.
- Authenticate using email-password combination.
- Validate fields with visual feedback for users.### 1.2 Authentication: Registration
- Register with first name, last name, email, and password.
- Encrypt password in the database.
- Validate fields with visual feedback for users.### 1.3 Main Application
- Add tasks within specific categories.#### 1.3.1 Todo CRUD
- Create, read, update, and delete todo items only when logged in (via cookies).
- Archive todo items by checking them off.#### 1.3.2 Category CRUD
- Create, read, update, and delete categories only when logged in.
- Delete associated todo items when deleting a category.
- Integrate middleware for field validation and error handling.### 1.4 API
- Perform CRUD operations to the database via separate API routes.
- Implement correct methods (GET / POST / PUT / PATCH / DELETE) for tasks and categories.
- Middleware for validating POST/PUT/DELETE requests.
- Authentication & Authorization using JSON Web Tokens.## 2. Technical Requirements
- NodeJS and Express for handling client <-> server requests and responses.
- MVC (Model, View, Controller) architecture.
- Handlebars as the templating engine.
- HTML & CSS for building the interface.
- Knex & Objection with SQLite3 database for data storage and management.
- JWT for client-server authentication.
- express-validator for login form validation.
- bcrypt for password encoding and decoding.
- body-parser for parsing body to/from JSON.
- cookie-parser for parsing cookies to/from the client.# Author
- Bénoît Biraguma Ihimabzwe