{"id":21505589,"url":"https://github.com/ajsevillano/users-crud","last_synced_at":"2026-04-06T09:32:26.801Z","repository":{"id":119721109,"uuid":"439105172","full_name":"ajsevillano/users-CRUD","owner":"ajsevillano","description":"🖥 Fullstack CRUD written in Javascript for  managing  users","archived":false,"fork":false,"pushed_at":"2023-11-28T18:22:03.000Z","size":385,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-01-03T14:15:23.489Z","etag":null,"topics":["backend","crud","database","expressjs","frontend","javascript","nodejs","postgresql"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/ajsevillano.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":"2021-12-16T19:30:36.000Z","updated_at":"2025-03-03T21:00:56.000Z","dependencies_parsed_at":"2025-03-17T14:31:44.821Z","dependency_job_id":null,"html_url":"https://github.com/ajsevillano/users-CRUD","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ajsevillano/users-CRUD","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajsevillano%2Fusers-CRUD","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajsevillano%2Fusers-CRUD/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajsevillano%2Fusers-CRUD/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajsevillano%2Fusers-CRUD/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ajsevillano","download_url":"https://codeload.github.com/ajsevillano/users-CRUD/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajsevillano%2Fusers-CRUD/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31466612,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-06T08:36:52.050Z","status":"ssl_error","status_checked_at":"2026-04-06T08:36:51.267Z","response_time":112,"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":["backend","crud","database","expressjs","frontend","javascript","nodejs","postgresql"],"created_at":"2024-11-23T19:08:10.105Z","updated_at":"2026-04-06T09:32:26.785Z","avatar_url":"https://github.com/ajsevillano.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FullStack CRUD App\n\nThis App provides a backend that serves a REST API with CRUD support for an user system, and a frontend that serves a static express site to show the data.\n![user-crud-screenshot](https://user-images.githubusercontent.com/35935634/147829879-feaff20d-2a01-49a6-847a-e9c9a3161c3e.gif)\n\n## Backend\n\nThe backend includes a mock database in the `mockData folder`. From the version 3.0, the backend uses an ORM system called [sequelize](https://sequelize.org/), that allow you to work with multiple SQL databases: Postgres, mysql, mariadb, sqlite and Microsoft SQL Server. By default, the app provided the drivers for Postgress \u0026 Mysql, but to use this app with another database you will need to install the proper driver.Follow the instructions on [sequelize website](https://sequelize.org/docs/v6/getting-started/).\n\n## Frontend\n\nThe frontEnd will be served by the backend, so you will need to run both to see the app working. The frontend is a static site that uses HTML, CSS and Javascript. The app uses express to serve the static files. The frontend will allow you to create, update and delete users from the database.\n\n## Motivation\n\nThis fullstack app was created as a 🎄 holiday project for the School of code Bootcamp which I was part of. This project integrates all that we have learned so far, Frontend, Backend, Databases and testing.\n\n## Design\n\nYou can see the low-fi \u0026 high-fi designs of the app on [Figma](https://www.figma.com/file/EWGf9bTaAAzCJIC0xPDNHh/CRUD-App?node-id=0%3A1)\n\n## Installation\n\nMake a project directory, clone this repository and initialise the project.\\\nThis will install all the necesary packages to run the backend and the frontend in your local machine.\n\n```bash\nmkdir crud-app \u0026\u0026 cd crud-app\ngit clone https://github.com/ajsevillano/users-CRUD.git\nnpm install\n```\n\nBefore run the app you will need to provide the data to connect to your database in the .env file.The app provides an example file with the structure.\nThis app uses a postgresql database. You can create a local Postgres Database or create one in the multiple services online for free.\n\nOnce you have created the DB, run the next scripts to create the table and populate the data:\n\n```javascript\n//Create the table users into the DB\nnpm run dbcreateusertable\n\n//Will insert mock data into the database.This data is store in a file in db/mockData/users.js\nnpm run dbpopulatetable\n\n```\n\n\\*\\* The app also provides an script to delete the users table from the database. This script is useful if you want to start from scratch.\n\n```javascript\n//Be aware that this script will DELETE THE USERS TABLE.\nnpm run dbdeletetable\n```\n\nFinally run the server and the frontEnd with:\n\n```javascript\nnpm run dev\n```\n\n**The frontend will be now available on**\n\n```bash\nhttp://localhost:3000\n```\n\n**The Rest API will be running on**\n\n```bash\nhttp://localhost:3000/api/users\n```\n\n## Features\n\n- 🗃️ ORM : The app uses [sequelize](https://sequelize.org/) as ORM to connect to the database. This allow you to work with multiple SQL databases: Postgres, mysql, mariadb, sqlite and Microsoft SQL Server.\n\n- 👤 **Adding Users** : Using the form at the top of the home page you can create new users into the database.\n\n- 🔄 **Update an user** : Using the button Update on the user information you can modify the name,last name, email or catchphrase.\n\n- ❌ **Delete user** : Using the delete button the user will be removed from the database.\n\n- ⚠️ **Alerts** : When an user is create or delete an alert will pop up on the top of the page to confirm the action.\n\n## Technical Details\n\nLibraries used in this project are:\n\n### Backend\n\n- [Express](https://www.npmjs.com/package/express): A web framework for node\n- [PG](https://www.npmjs.com/package/pg) : Non-blocking PostgreSQL client for Node.js.\n- [Mysql2](https://www.npmjs.com/package/mysql2) : MySQL client for Node.js with focus on performance. Supports prepared statements, non-utf8 encodings, binary log protocol, compression, ssl and much more.\n- [Nodemon](https://www.npmjs.com/package/nodemon): (Dev dependency) A utility that will monitor for any changes in your source and automatically restart your server.\n- [Sequelize](https://sequelize.org/) : A promise-based Node.js ORM for Postgres, MySQL, MariaDB, SQLite and Microsoft SQL Server.\n- [DotEnv](https://www.npmjs.com/package/dotenv): (Dev dependency) A zero-dependency module that loads environment variables from a .env file.\n- [Jest](https://www.npmjs.com/package/jest): (Dev dependency) A library for testing.\n\n### Frontend\n\nThe front-end is entirely developed using HTML, CSS, and Vanilla JavaScript.\n\n## API END POINTS\n\nThis is a list of the end points used by the Api. You can test the endpoints using [Postman](https://www.postman.com/)\n\n### Get all users endpoint\n\n```javascript\nlocalhost: 3000 / api / users;\n```\n\n### Get user by Id endpoint\n\n```javascript\nlocalhost:3000/api/users/:id\n```\n\n### Create endpoint\n\n```javascript\nlocalhost: 3000 /\n  api /\n  users /\n  // You will need to provide the data in the body of the request\n\n  {\n    firstName: 'Example',\n    lastName: 'Example',\n    email: 'example@example.com',\n    catchphrase: 'Example catchphrase',\n  };\n```\n\n### Update endpoint\n\n```javascript\n\nlocalhost:3000/api/users/:id\n\n// You will need to provide the data in the body of the request\n\n{\nfirstName: 'Example',\nlastName: 'Example',\nemail:'example@example.com',\ncatchphrase: 'Example catchphrase',\n}\n```\n\n### Delete endpoint\n\n```javascript\nlocalhost:3001/api/users/:id\n\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fajsevillano%2Fusers-crud","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fajsevillano%2Fusers-crud","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fajsevillano%2Fusers-crud/lists"}