{"id":24907736,"url":"https://github.com/max-im/marketplace-api","last_synced_at":"2025-03-27T23:17:04.295Z","repository":{"id":274370429,"uuid":"922692617","full_name":"Max-im/marketplace-api","owner":"Max-im","description":"Peer-to-Peer Rental Platform API","archived":false,"fork":false,"pushed_at":"2025-01-26T21:33:09.000Z","size":47,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-26T22:25:12.689Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/Max-im.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":"2025-01-26T21:17:20.000Z","updated_at":"2025-01-26T21:33:12.000Z","dependencies_parsed_at":"2025-01-26T22:35:18.018Z","dependency_job_id":null,"html_url":"https://github.com/Max-im/marketplace-api","commit_stats":null,"previous_names":["max-im/marketplace-api"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Max-im%2Fmarketplace-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Max-im%2Fmarketplace-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Max-im%2Fmarketplace-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Max-im%2Fmarketplace-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Max-im","download_url":"https://codeload.github.com/Max-im/marketplace-api/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245938229,"owners_count":20697008,"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":[],"created_at":"2025-02-02T01:18:57.473Z","updated_at":"2025-03-27T23:17:04.265Z","avatar_url":"https://github.com/Max-im.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Peer-to-Peer Rental Platform API\n\n\u003e A platform that allows users to rent items from each other in a peer-to-peer fashion. Users can list items for rent, browse available items, and manage their rentals through the platform.\n\n## Tech\n- Node.js\n- Express.js\n- MongoDB\n- TypeScript\n- Swagger\n\n## Development\n- Clone this repository in the current folder:\n  ```sh\n  git clone https://github.com/Max-im/marketplace-api . \n  ```\n- Make sure your current Node.js version is 20 or higher:\n  ```\n  export NVM_DIR=\"$([ -z \"${XDG_CONFIG_HOME-}\" ] \u0026\u0026 printf %s \"${HOME}/.nvm\" || printf %s \"${XDG_CONFIG_HOME}/nvm\")\"\n  [ -s \"$NVM_DIR/nvm.sh\" ] \u0026\u0026 \\. \"$NVM_DIR/nvm.sh\" # This loads nvm\n  nvm use 20\n  ```\n\n- Use `.env.sample` to create `.env` file with appropriate variables. If you don't provide `.env`, the App's database will work in memory.\n- Run the command:\n  ```sh\n  npm run dev\n  ```\n\n## Testing\n- Run the App locally (See the Development section)\n- Open `http://localhost:3000/api-docs` in your browser to see the App available endpoints in Swagger.\n\n## Description\nThere are 3 MongoDB collections:\n - items\n - rents\n - history\n\n### Items collection:\nContains the items that can be rented. Any user can create an item to rent with the `name`, `description`, and `price` fields.\n\n### Rents collection:\nContains the items already rented. Once an item is rented, it cannot be searched.\n\n### History collection:\nContains renting history. Once a user returns an item, it is removed from the renting collection and stored in the history collection. This approach ensures the `rents` collection does not become too large, making database requests more efficient.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmax-im%2Fmarketplace-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmax-im%2Fmarketplace-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmax-im%2Fmarketplace-api/lists"}