Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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.

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