{"id":21802117,"url":"https://github.com/escuderoemanuel/nodejsecommerce","last_synced_at":"2026-04-11T19:03:36.527Z","repository":{"id":219540897,"uuid":"749294511","full_name":"escuderoemanuel/NodeJsEcommerce","owner":"escuderoemanuel","description":"Backend Ecommerce","archived":false,"fork":false,"pushed_at":"2024-10-25T21:56:20.000Z","size":2324,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-26T03:43:29.810Z","etag":null,"topics":["express","fakerjs","handlebars","jwt","mongoose","nodejs","passport","websockets"],"latest_commit_sha":null,"homepage":"https://nodejsecommerce-8f7b.onrender.com","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/escuderoemanuel.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-01-28T06:19:46.000Z","updated_at":"2024-10-25T21:56:23.000Z","dependencies_parsed_at":"2024-02-08T05:28:02.231Z","dependency_job_id":"dd660586-81ac-4f41-a47b-3eb62f0d2490","html_url":"https://github.com/escuderoemanuel/NodeJsEcommerce","commit_stats":null,"previous_names":["escuderoemanuel/nodejsecommerce"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/escuderoemanuel%2FNodeJsEcommerce","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/escuderoemanuel%2FNodeJsEcommerce/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/escuderoemanuel%2FNodeJsEcommerce/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/escuderoemanuel%2FNodeJsEcommerce/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/escuderoemanuel","download_url":"https://codeload.github.com/escuderoemanuel/NodeJsEcommerce/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244752355,"owners_count":20504255,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["express","fakerjs","handlebars","jwt","mongoose","nodejs","passport","websockets"],"created_at":"2024-11-27T11:23:03.362Z","updated_at":"2025-12-30T20:53:28.896Z","avatar_url":"https://github.com/escuderoemanuel.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NodeJs Ecommerce \u003cimg width='30' align='center' src='https://i.ibb.co/7XPkx1L/nodejs.png'\u003e\r\n\r\nFullstack ecommerce project, built on NodeJs\r\n\r\n## 🔍 About the project \r\n\r\n- URL: [NodeJsEcommerce](https://nodejsecommerce-8f7b.onrender.com)\r\n- Github Repository: [NodeJsEcommerce](https://github.com/escuderoemanuel/NodeJsEcommerce)\r\n- Developer: [Emanuel Escudero](https://emanuelescudero.ar)\r\n\r\n## ⚙️ Features\r\n\r\n- View to register a new user account\r\n- View to log in with an existing user account\r\n- It is also possible to log in with a github account\r\n- Method available to reset the password\r\n- Accounts have a type role 'user', 'premium' or 'admin'\r\n- All functions have authentication through jwt and cookies\r\n- The navbar, views, and functions available depend on the type of role that the account with which the user is logged in has\r\n\r\n### 🪪 Account with role of type 'user'\r\n\r\n- Navbar with access to products, chat, cart, profile and exit\r\n- In the product view, can see the data of each product and add them to the cart\r\n- The user cannot add products without stock\r\n- In the chat view, the user can read and send messages to other connected users in real time\r\n- In the cart view you can see the products you have added, you can remove a product or make the purchase\r\n- If the purchase is made, the user receives the data generated in his email account\r\n- Cannot make a purchase from an empty cart\r\n- In the profile view, the user can see their account information and upload files such as their profile photo and the documentation required to be a premium role user\r\n- If the user has uploaded a profile picture, the default icon in their navbar will be replaced by that image\r\n- Access to the logout button\r\n\r\n### 🪪 Account with role of type 'premium'\r\n\r\n- Navbar with access to products, products manager, chat, cart, profile and exit\r\n- In the product view, can see the data of each product and add them to the cart\r\n- The user cannot add products without stock\r\n- The user cannot add products created by himself to the cart\r\n- In the products manager view, the user can create new products that will be available to all users\r\n- The user can only delete products created by himself\r\n- In the chat view, the user can read and send messages to other connected users in real time\r\n- In the cart view you can see the products you have added, you can remove a product or make the purchase\r\n- If the purchase is made, the user receives the data generated in his email account\r\n- Cannot make a purchase from an empty cart\r\n- In the profile view, the user can see their account information and upload files such as their profile photo and the documentation required to be a premium role user\r\n- If the user has uploaded a profile picture, the default icon in their navbar will be replaced by that image\r\n- Access to the logout button\r\n\r\n### 🪪 Account with role of type 'admin'\r\n\r\n- Navbar with access to products, products manager, user manager, profile and exit\r\n- In the product view, can see the data of each product, but cannot add them to the cart\r\n- In the products manager view, the user can create new products that will be available to all users\r\n- The user can delete products created by himself or other users\r\n- In the users manager view the admin can change the role of a user\r\n- The admin will only be able to change the role of 'user' to another, if that user has uploaded the required documents\r\n- The admin will be able to delete user accounts manually\r\n- The admin will be able to delete all inactive accounts at once\r\n- The admin will not be able to delete his own account\r\n- In the profile view, the user can see their account information and upload files such as their profile photo and the documentation required\r\n- If the user has uploaded a profile picture, the default icon in their navbar will be replaced by that image\r\n- Access to the logout button\r\n\r\n\r\n### 📋 Technologies \u0026 Tools\r\n\r\n- NPM https://www.npmjs.com\r\n- NodeJs https://nodejs.org/en\r\n- ExpressJs https://expressjs.com/es\r\n- Handlebars https://handlebarsjs.com\r\n- MongoDB https://www.mongodb.com/es\r\n- Mongoose https://www.npmjs.com/package/mongoose\r\n- JWT https://jwt.io\r\n- NodeMailer https://www.npmjs.com/package/nodemailer\r\n- PassportAuth https://www.passportjs.org\r\n- BCrypt https://www.npmjs.com/package/bcrypt\r\n- DotEnv https://www.npmjs.com/package/dotenv\r\n- Faker https://fakerjs.dev\r\n- Luxon https://www.npmjs.com/package/luxon\r\n- Multer https://www.npmjs.com/package/multer\r\n- SocketIo https://socket.io\r\n- SwaggerJsDoc https://www.npmjs.com/package/swagger-jsdoc\r\n- SweetAlert https://sweetalert2.github.io\r\n- UUID https://www.npmjs.com/package/uuid\r\n- Winston https://www.npmjs.com/package/winston\r\n- Commander https://www.npmjs.com/package/commander\r\n- Cors https://www.npmjs.com/package/cors\r\n- VisualStudioCode https://code.visualstudio.com\r\n- CSS3 https://developer.mozilla.org/en-US/docs/Web/CSS\r\n- Javascript https://www.javascript.com\r\n- GoogleFonts https://fonts.google.com\r\n- Icons8 https://icons8.com\r\n\r\n### 🚀 Execution\r\n\r\n- Clone the repository\r\n\r\n  `git clone https://github.com/escuderoemanuel/NodeJsEcommerce`\r\n\r\n- Install the dependencies listed in the package.json file\r\n  \r\n  `npm i`\r\n\r\n- You will need to create your own .env file in the root of the project and set your own environment variables!\r\n\r\n- Run the project\r\n\r\n  `npm run dev`\r\n\r\n- In the browser, go to the following path http://localhost:8080 or the port provided by the 'npm run dev' command\r\n\r\n- You can access the documentation for the functions from http://localhost:8080/apidocs\r\n\r\n### 🌍 Deployment With\r\n\r\n- Render https://render.com\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fescuderoemanuel%2Fnodejsecommerce","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fescuderoemanuel%2Fnodejsecommerce","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fescuderoemanuel%2Fnodejsecommerce/lists"}