{"id":19259573,"url":"https://github.com/thefeij/simple-shop","last_synced_at":"2026-05-06T08:33:20.561Z","repository":{"id":182498810,"uuid":"668593171","full_name":"TheFeij/Simple-Shop","owner":"TheFeij","description":"Back-end for a simple shop program","archived":false,"fork":false,"pushed_at":"2023-07-24T10:24:17.000Z","size":176,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-20T14:09:01.204Z","etag":null,"topics":["authentication","jwt","mongodb","nodejs","unit-testing"],"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/TheFeij.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":"2023-07-20T07:07:24.000Z","updated_at":"2024-04-24T10:12:03.000Z","dependencies_parsed_at":"2025-01-05T09:40:59.457Z","dependency_job_id":null,"html_url":"https://github.com/TheFeij/Simple-Shop","commit_stats":null,"previous_names":["thefeij/shop"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/TheFeij/Simple-Shop","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheFeij%2FSimple-Shop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheFeij%2FSimple-Shop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheFeij%2FSimple-Shop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheFeij%2FSimple-Shop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TheFeij","download_url":"https://codeload.github.com/TheFeij/Simple-Shop/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheFeij%2FSimple-Shop/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32684668,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-06T08:33:17.875Z","status":"ssl_error","status_checked_at":"2026-05-06T08:33:17.221Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["authentication","jwt","mongodb","nodejs","unit-testing"],"created_at":"2024-11-09T19:16:59.118Z","updated_at":"2026-05-06T08:33:20.546Z","avatar_url":"https://github.com/TheFeij.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Simple Shop\nThis project aims to implement a straightforward back-end system for registering products in the form of a simple online shop. The shop system allows users to manage their desired products through registration and logging into their user accounts.\n\n# Features\n### User Registration\nIn this section, users can create an account by providing the following information:\n- Name and last name\n- Email address\n- Password\n- Email address validation is required before completing the registration process.\n\n### User Login\nUsers can log into the system using their email address and password.\n\n### Product Creation\nLogged-in users can create their own products.\nEach product contains the following information:\n- Product title\n- Description related to the product\n\n### Viewing Product Lists\nUsers can view their product list and all products created in the shop.\nThe product list is sorted based on their creation date.\nPagination is available for easy browsing of the product list.\n\n# Detailed Description:\n### Signup\nClient sends firstname, lastname, email and password to the server. After validation is done,\nthe user is added to the database and a verification email is sent to the user's email.\nAt this point registration is not complete, and the user cannot log in because the account\nis not verified yet. User checks their email inbox and clicks on the verification link, and their\naccount verification will be complete, and they can log in to their account\n\n### Login\nUser logs in using a valid email and password. After that, a refreshing token in the response header\nis sent to the client. Refreshing token has an expiration time of 12h. Client can use that refreshing\ntoken to receive access tokens to use for authorization and authentication. Access tokens have an expiration \ntime of 10m. When the refreshing token expires, the user needs to log in again in order to receive\nanother refreshing token\n\n### Adding products\nLogged-in users can add new products to the shop. Client sends information about the product, \nand after validations have been done, the product will be added to the shop.\n\n### Displaying products\nLogged-in users can receive a list of all products in the database or just their own products.\nThey can get the list sorted from new to old or old to new. They can also get the list paginated.\nThese options and For pagination the page size and page number are sent to the server via query\nparameters.\n\n# Possible features to be implemented\n### Sending verification email again\nVerification tokens sent to user via a verification email have an expiration time of\n1 day. There is a possibility that a user cannot check their email and the verification token expires.\nSo there should be a feature that the user can receive another verification email\n\n### Log out\nA log-out feature should be implemented\n\n### Limit for login attempts\nThere should be a limit for how many times a user can enter the wrong login information.\nImplementing a feature to limit the amount of login tries for a certain IP address\nis a must.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthefeij%2Fsimple-shop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthefeij%2Fsimple-shop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthefeij%2Fsimple-shop/lists"}