{"id":19467343,"url":"https://github.com/pgm-benobira/todoo","last_synced_at":"2026-04-14T03:30:55.577Z","repository":{"id":244584963,"uuid":"815672731","full_name":"pgm-benobira/todoo","owner":"pgm-benobira","description":"To do application with authentication made using Handlebars where the user can use CRUD operations to the SQLite3 database.","archived":false,"fork":false,"pushed_at":"2024-06-15T19:43:42.000Z","size":427,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-25T13:55:04.885Z","etag":null,"topics":["crud","expressjs","jwt","knexjs","mvc","nodejs","objectionjs","sqlite3"],"latest_commit_sha":null,"homepage":"","language":"Handlebars","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pgm-benobira.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-15T19:42:14.000Z","updated_at":"2024-06-16T14:06:51.000Z","dependencies_parsed_at":"2024-06-15T20:43:44.586Z","dependency_job_id":"7a4f38b4-825a-432c-9f29-ba7c4aa2fc03","html_url":"https://github.com/pgm-benobira/todoo","commit_stats":null,"previous_names":["pgm-benobira/todoo"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pgm-benobira/todoo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgm-benobira%2Ftodoo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgm-benobira%2Ftodoo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgm-benobira%2Ftodoo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgm-benobira%2Ftodoo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pgm-benobira","download_url":"https://codeload.github.com/pgm-benobira/todoo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgm-benobira%2Ftodoo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31781292,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T02:24:21.117Z","status":"ssl_error","status_checked_at":"2026-04-14T02:24:20.627Z","response_time":153,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["crud","expressjs","jwt","knexjs","mvc","nodejs","objectionjs","sqlite3"],"created_at":"2024-11-10T18:34:40.858Z","updated_at":"2026-04-14T03:30:55.533Z","avatar_url":"https://github.com/pgm-benobira.png","language":"Handlebars","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Install\n\n- npm i\n- make.env\n- start app 'npm run start'\n\n## In the application\n\n### To log in:\n- Email: beno2001@hotmail.com\n- Password: 123\n\n\n# Application Overview\n\n## 1. Functionality\n\n### 1.1 Authentication: Sign-in and Sign-out\n- Display sign-in screen when user is not logged in.\n- Authenticate using email-password combination.\n- Validate fields with visual feedback for users.\n\n### 1.2 Authentication: Registration\n- Register with first name, last name, email, and password.\n- Encrypt password in the database.\n- Validate fields with visual feedback for users.\n\n### 1.3 Main Application\n- Add tasks within specific categories.\n\n#### 1.3.1 Todo CRUD\n- Create, read, update, and delete todo items only when logged in (via cookies).\n- Archive todo items by checking them off.\n\n#### 1.3.2 Category CRUD\n- Create, read, update, and delete categories only when logged in.\n- Delete associated todo items when deleting a category.\n- Integrate middleware for field validation and error handling.\n\n### 1.4 API\n- Perform CRUD operations to the database via separate API routes.\n- Implement correct methods (GET / POST / PUT / PATCH / DELETE) for tasks and categories.\n- Middleware for validating POST/PUT/DELETE requests.\n- Authentication \u0026 Authorization using JSON Web Tokens.\n\n\n## 2. Technical Requirements\n\n- NodeJS and Express for handling client \u003c-\u003e server requests and responses.\n- MVC (Model, View, Controller) architecture.\n- Handlebars as the templating engine.\n- HTML \u0026 CSS for building the interface.\n- Knex \u0026 Objection with SQLite3 database for data storage and management.\n- JWT for client-server authentication.\n- express-validator for login form validation.\n- bcrypt for password encoding and decoding.\n- body-parser for parsing body to/from JSON.\n- cookie-parser for parsing cookies to/from the client.\n\n# Author\n\n- Bénoît Biraguma Ihimabzwe","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpgm-benobira%2Ftodoo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpgm-benobira%2Ftodoo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpgm-benobira%2Ftodoo/lists"}