{"id":20808149,"url":"https://github.com/clintonbrito/restful-api-ecommerce","last_synced_at":"2026-05-08T06:41:44.985Z","repository":{"id":246995138,"uuid":"822818902","full_name":"clintonbrito/restful-api-ecommerce","owner":"clintonbrito","description":"This repository contains the backend challenge project for a job application. It is a RESTful API built with AdonisJS (Node.js) and MySQL for managing users, clients, products, and sales. The project follows the MVC architecture and includes user authentication with JWT.","archived":false,"fork":false,"pushed_at":"2024-07-10T00:57:49.000Z","size":316,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-18T13:48:11.978Z","etag":null,"topics":["adonisjs","jwt","mysql","nodejs","rest-api","restful-api","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/clintonbrito.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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-07-01T22:30:01.000Z","updated_at":"2024-07-09T02:42:46.000Z","dependencies_parsed_at":"2024-07-08T21:59:43.307Z","dependency_job_id":"843507df-2c8a-4442-a3ef-166d82ddb707","html_url":"https://github.com/clintonbrito/restful-api-ecommerce","commit_stats":null,"previous_names":["clintonbrito/restful-api-ecommerce"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clintonbrito%2Frestful-api-ecommerce","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clintonbrito%2Frestful-api-ecommerce/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clintonbrito%2Frestful-api-ecommerce/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clintonbrito%2Frestful-api-ecommerce/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/clintonbrito","download_url":"https://codeload.github.com/clintonbrito/restful-api-ecommerce/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243152868,"owners_count":20244657,"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":["adonisjs","jwt","mysql","nodejs","rest-api","restful-api","typescript"],"created_at":"2024-11-17T19:45:43.877Z","updated_at":"2025-10-20T01:53:19.332Z","avatar_url":"https://github.com/clintonbrito.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RESTful API E-Commerce Project\n\nThis is a MVP e-commerce-like API developed from scratch. It allows you to manage users, clients, products and sales. The project follows the MVC architecture and includes user authentication with JWT.\n\n\u003cbr\u003e\n\n## 🧪 Technologies\n\nThis project was developed using:\n\n  ![TypeScript](https://img.shields.io/badge/typescript-%23007ACC.svg?style=for-the-badge\u0026logo=typescript\u0026logoColor=white)\n  ![AdonisJS](https://img.shields.io/badge/Adonis%20JS-5A45FF.svg?style=for-the-badge\u0026logo=adonisjs\u0026logoColor=white)\n  ![JWT](https://img.shields.io/badge/JWT-000000.svg?style=for-the-badge\u0026logo=jsonwebtokens\u0026logoColor=white)\n  ![MySQL](https://img.shields.io/badge/MySQL-005C84?style=for-the-badge\u0026logo=mysql\u0026logoColor=white)\n  ![Docker](https://img.shields.io/badge/docker-%230db7ed.svg?style=for-the-badge\u0026logo=docker\u0026logoColor=white)\n  ![ESLint](https://img.shields.io/badge/ESLint-4B3263?style=for-the-badge\u0026logo=eslint\u0026logoColor=white)\n\n\u003cbr\u003e\n\n## 🚀 Getting started locally\n\n\u003cp style\u003eClone this repository to your local machine and access the cloned directory:\u003c/p\u003e\n\n\u003cpre\u003e\u003ccode\u003egit clone git@github.com:clintonbrito/restful-api-ecommerce.git\ncd restful-api-ecommerce\u003c/code\u003e\u003c/pre\u003e\n\n\u003cp\u003eRun this command to create all the project's Docker containers and install the dependencies:\u003c/p\u003e\n\n\u003cpre\u003e\u003ccode\u003edocker compose up -d --build\u003c/code\u003e\u003c/pre\u003e\n\n\u003cp\u003eIf you need to stop and remove the project's Docker containers, you can use the following command:\u003c/p\u003e\n\n\u003cpre\u003e\u003ccode\u003edocker compose down\u003c/code\u003e\u003c/pre\u003e\n\nCheck the docker logs using the command `docker logs -f app` which address is running the application and open your browser or any prefered API client in order to test the endpoints through the address below, for example:\n\n\u003cpre\u003e\u003ccode\u003ehttp://127.0.0.1:3333\u003c/code\u003e\u003c/pre\u003e\n\n\u003cbr\u003e\n\n## 📖 API Documentation\n\nExplore the API documentation to understand the available endpoints, request parameters, and responses. The documentation is built using [Bruno 🐶](https://www.usebruno.com/), a fast and Git-friendly Opensource API client, which also provides an interactive and user-friendly interface.\n\n### Accessing API Documentation\n\n1. **Run the Application:**\n   Make sure the application is running locally. Follow the [Getting Started](#-getting-started-locally) section for instructions on starting the application.\n\n2. **Feel free to give a try to Bruno and download it:**\n   Check out the [Download](https://www.usebruno.com/downloads) page and follow the instructions.\n\n3. **Open Bruno Desktop App:**\n   Once the application Docker containers are running ok, you can access the Bruno Desktop App.\n\n![API Documentation](docs/bruno.png)\n\n4. **Explore Endpoints:**\n   In the Bruno Desktop App, you just need to import `/docs/Ecommerce API` collection folder and voilà: you'll find a list of available endpoints along with details about request parameters. Use this interface to understand how to interact with the API. The base URL of the API which you should use as an environment variable on Bruno is the following:\n   \n   \u003cpre\u003e\u003ccode\u003ehttp://127.0.0.1:3333\u003c/code\u003e\u003c/pre\u003e\n\n![API Documentation](docs/api_documentation.png)\n\nFeel free to explore and test the API directly any other API client you prefer. If you encounter any issues or have questions, refer to the [Issues](https://github.com/clintonbrito/restful-api-ecommerce/issues) section for support.\n\n\u003cbr\u003e\n\n## 🔭 Future features\n\nFor future features, I intend to include:\n1. Unit testing with a high code coverage;\n2. Date filtering for sales;\n3. Improve user authentication and authorization policy;\n4. Use Auth as a middleware instead of manually checking JWT credentials;\n5. Separate business logic in service layer;\n6. Work on better DTOs;\n7. Deploy the project on a cloud service.\n\n\u003cbr\u003e\n\n## 🎨 Development Patterns\n\n### Commit Patterns\n\n[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-%23FE5196?logo=conventionalcommits\u0026logoColor=white)](https://conventionalcommits.org)\n\u003ca href=\"https://gitmoji.dev\"\u003e\n  \u003cimg\n    src=\"https://img.shields.io/badge/gitmoji-%20😜%20😍-FFDD67.svg?style=flat-square\"\n    alt=\"Gitmoji\"\n  /\u003e\n\u003c/a\u003e\n\nThis project adopts [Gitmoji](https://github.com/carloscuesta/gitmoji) and the commit convention known as [Conventional Commits](https://www.conventionalcommits.org/). This means that we follow a standardized format for our commit messages, making it easier to generate changelogs and adopt semantic versioning.\n\nExample commit messages format:\n\n\u003cpre\u003e\u003ccode\u003efeat: add login functionality\nfix: resolve issue with user registration\nwip: connecting back-end to front-end\u003c/code\u003e\u003c/pre\u003e\n\n### Branch Patterns\n\nThe branches in this project follow a specific pattern to facilitate organization and understanding of ongoing development. Some of the common prefixes used include `feature/`, `bugfix/`, `docs/`:\n\nExample branch names:\n\n\u003cpre\u003e\u003ccode\u003efeature/docker-setup\nbugfix/eslint-errors\ndocs/update-readme\u003c/code\u003e\u003c/pre\u003e\n\n\u003cbr\u003e\n\n## 📝 License\nThis project is licensed under the MIT License. See the \u003ca target=\"_blank\" rel=\"noopener\" href=\"https://github.com/clintonbrito/restful-api-ecommerce/blob/main/LICENSE\"\u003eLICENSE\u003c/a\u003e file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclintonbrito%2Frestful-api-ecommerce","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclintonbrito%2Frestful-api-ecommerce","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclintonbrito%2Frestful-api-ecommerce/lists"}