{"id":19974090,"url":"https://github.com/larissaperinoto/trybesmith-api","last_synced_at":"2026-04-12T15:34:29.261Z","repository":{"id":116558716,"uuid":"564829463","full_name":"larissaperinoto/trybesmith-api","owner":"larissaperinoto","description":"The TrybeSmith API consists of a management interface for a medieval products store and was developed using TypeScript.","archived":false,"fork":false,"pushed_at":"2022-12-30T14:56:07.000Z","size":200,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-01T18:33:45.312Z","etag":null,"topics":["docker","docker-compose","express","joi","jwt","msc","mysql","nodejs","nodemon","sql","swagger","typescript"],"latest_commit_sha":null,"homepage":"","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/larissaperinoto.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":"2022-11-11T15:44:03.000Z","updated_at":"2024-08-19T10:02:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"fbeea5b3-75e2-4e09-b173-c88b7d0d638d","html_url":"https://github.com/larissaperinoto/trybesmith-api","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/larissaperinoto/trybesmith-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/larissaperinoto%2Ftrybesmith-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/larissaperinoto%2Ftrybesmith-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/larissaperinoto%2Ftrybesmith-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/larissaperinoto%2Ftrybesmith-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/larissaperinoto","download_url":"https://codeload.github.com/larissaperinoto/trybesmith-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/larissaperinoto%2Ftrybesmith-api/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261397491,"owners_count":23152492,"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":["docker","docker-compose","express","joi","jwt","msc","mysql","nodejs","nodemon","sql","swagger","typescript"],"created_at":"2024-11-13T03:13:53.496Z","updated_at":"2026-04-12T15:34:29.230Z","avatar_url":"https://github.com/larissaperinoto.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TrybeSmith API\n\n[Trybe](https://www.betrybe.com/) is a technology school focused on training Web Developers and the TrybeSmith project was proposed as an activity to improve studies on back-end development with TypeScript.\n\n## Description\n\nThe developed application is an API and a database with the content of a medieval articles store. The application must allow creating, reading, updating and removing items from the store's database. It also performs authentication to grant permissions to users when creating new orders.\n\n## Technologies and Tools\n\u003cdiv\u003e\n    \u003cimg src=\"https://img.shields.io/badge/MySQL-005C84?style=for-the-badge\u0026logo=mysql\u0026logoColor=white\" alt=\"mysql\"/\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Node.js-339933?style=for-the-badge\u0026logo=nodedotjs\u0026logoColor=white\" alt=\"nodejs\"/\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Docker-2CA5E0?style=for-the-badge\u0026logo=docker\u0026logoColor=white\" alt=\"docker\"/\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Express.js-000000?style=for-the-badge\u0026logo=express\u0026logoColor=white\" alt=\"express\"/\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Sequelize-52B0E7?style=for-the-badge\u0026logo=Sequelize\u0026logoColor=white\" alt=\"sequelize\"/\u003e\n    \u003cimg src=\"https://img.shields.io/badge/TypeScript-007ACC?style=for-the-badge\u0026logo=typescript\u0026logoColor=white\" alt=\"typescript\"/\u003e\n    \u003cimg src=\"https://img.shields.io/badge/JWT-000000?style=for-the-badge\u0026logo=JSON%20web%20tokens\u0026logoColor=white\" alt=\"jwt\"/\u003e \n    \u003cimg src=\"https://img.shields.io/badge/Swagger-85EA2D?style=for-the-badge\u0026logo=Swagger\u0026logoColor=white\" alt=\"Swagger\"/\u003e\n\u003c/div\u003e\n\n\u003cbr\u003e\n\nIn the elaboration of the RESTful API, the **Model-Service-Controller(MSC)** architecture was used, in addition to the following tools:\n\n- [TypeScript](https://www.typescriptlang.org/)\n- [Node.JS](https://nodejs.org/en/)\n- [Express](https://expressjs.com/pt-br/)\n- [MySQL](https://www.mysql.com/)\n- [Docker](https://www.docker.com/)\n- [Sequelize](https://sequelize.org/)\n- [JWT](https://jwt.io/)\n- [Joi](https://joi.dev/api/)\n\n## ⚙️ How to use\n\nTo run the application, start by making a clone of this repository with the command below.\n\n    git clone git@github.com:larissaperinoto/trybesmith-api.git\n    \nNavigate to the project root.\n\n    cd trybesmith-api/\n    \n\u003cdetails\u003e\n   \u003csummary\u003e\u003cstrong\u003eRunning locally\u003c/strong\u003e\u003c/summary\u003e \n  \u003c/br\u003e\n  \u003cstrong\u003eObs:\u003c/strong\u003e To run the application this way you must have [Node.JS](https://nodejs.org/en/) installed on your machine.\n  \u003c/br\u003e\n  \u003c/br\u003e\n  \n  Install the dependencies with the command below.\n  \n    npm install\n  \n  Login to MySQL using your local credentials.\n  \n    mysql -r \u003cyour-username\u003e -p\n  \n   Logged in the MySQL instance, run the **Trybesmith.sql** script to create the database.  \n  \n   Make a copy of the file **.env.example** with the name **.env** and fill in the information that is necessary to connect with the database.\n  \n  \u003cdetails\u003e\n  \u003csummary\u003eInformation that must be present in the file\u003cstrong\u003e.env\u003c/strong\u003e\u003c/summary\u003e\n  \n        MYSQL_USER=root\n        MYSQL_PASSWORD=password\n        MYSQL_HOST=localhost\n        JWT_SECRET=secret\n  \n  \u003c/details\u003e\n  \n   Start the application with the command below.\n  \n    npm start\n  \n\u003c/details\u003e\n\n\u003cdetails\u003e\n   \u003csummary\u003e\u003cstrong\u003eRunning with Docker\u003c/strong\u003e\u003c/summary\u003e \n  \u003c/br\u003e\n  \n  \u003cstrong\u003eObs:\u003c/strong\u003e To run the application this way you must have [Docker](https://www.docker.com/) installed on your machine.\n  \n  \u003c/br\u003e\n  \n  In the root of the project, upload the \u003cstrong\u003etrybesmith\u003c/strong\u003e and \u003cstrong\u003etrybesmith_db\u003c/strong\u003e containers using docker-compose.\n\n    docker-compose up -d\n    \n  Open the \u003cstrong\u003etrybesmith\u003c/strong\u003e container terminal.\n\n    docker exec -it trybesmith bash\n  \n   Once in the container terminal, run the command below to install the project's dependencies.\n    \n    npm install\n    \n  To connect to the database, open the  \u003cstrong\u003etrybesmith_db\u003c/strong\u003e container's terminal.\n  \n    docker exec -it trybesmith_db bash\n    \n  Login to the database using the credentials described in the \u003cstrong\u003edocker-compose.yaml\u003c/strong\u003e file.\n  \n    mysql -r root -p\n  \n  Logged in the MySQL instance, run the **Trybesmith.sql** script to create the database. \n  \n    npm prestart\n    \n   Start the application with the command below.\n  \n    npm start\n    \n\u003c/details\u003e\n\n## Routes\n\n You can check all the routes by accessing the /docs endpoint in your browser when running the application.\n\n\u003cdetails\u003e\n    \u003csummary\u003eRoutes preview\u003c/summary\u003e\n    \n    \n![Captura de tela de 2022-12-29 15-53-00](https://user-images.githubusercontent.com/98956659/209998561-e55a123f-8cf9-4708-969d-8a6a269daf92.png)\n    \n    \n\u003c/details\u003e\n\n\n---\n \nDeveloped by [Larissa Perinoto](www.linkedin.com/in/larissaperinoto), © 2022.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flarissaperinoto%2Ftrybesmith-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flarissaperinoto%2Ftrybesmith-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flarissaperinoto%2Ftrybesmith-api/lists"}