{"id":20032746,"url":"https://github.com/tomasferrerasdev/unbridled-spirit","last_synced_at":"2026-04-15T05:31:38.750Z","repository":{"id":38890962,"uuid":"506754065","full_name":"tomasferrerasdev/unbridled-spirit","owner":"tomasferrerasdev","description":" Order Bourbon Online and have it delivered directly to your door.  Buy bourbon online today. Large selection of Single Batch Bourbon, Whiskies and more.","archived":false,"fork":false,"pushed_at":"2023-01-01T19:36:30.000Z","size":34389,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-08T17:51:40.538Z","etag":null,"topics":["eslint","husky","material-ui","mongodb","nextauth","nextjs","nodejs","prettier","typescript"],"latest_commit_sha":null,"homepage":"https://unbridled-spirit.up.railway.app/","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/tomasferrerasdev.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}},"created_at":"2022-06-23T18:43:20.000Z","updated_at":"2024-07-05T19:40:28.000Z","dependencies_parsed_at":"2023-02-01T00:31:53.489Z","dependency_job_id":null,"html_url":"https://github.com/tomasferrerasdev/unbridled-spirit","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tomasferrerasdev/unbridled-spirit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomasferrerasdev%2Funbridled-spirit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomasferrerasdev%2Funbridled-spirit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomasferrerasdev%2Funbridled-spirit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomasferrerasdev%2Funbridled-spirit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tomasferrerasdev","download_url":"https://codeload.github.com/tomasferrerasdev/unbridled-spirit/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomasferrerasdev%2Funbridled-spirit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31828530,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T18:05:02.291Z","status":"online","status_checked_at":"2026-04-15T02:00:06.175Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["eslint","husky","material-ui","mongodb","nextauth","nextjs","nodejs","prettier","typescript"],"created_at":"2024-11-13T09:39:20.579Z","updated_at":"2026-04-15T05:31:38.731Z","avatar_url":"https://github.com/tomasferrerasdev.png","language":"TypeScript","funding_links":["https://developer.paypal.com/home"],"categories":[],"sub_categories":[],"readme":"# Unbridled Spirit Bourbon shop 🦃\n\n![Screenshot 2022-08-13 133900](https://user-images.githubusercontent.com/107090584/184503066-ddee50b9-9f64-4da2-94d1-7c508c14031f.png)\n\nThis Guide / Doc is still in progress come again to check updates ✅✅✅\n\n## Docs index\n\n- ### What is Unbridled Spirit?\n  - Technologies\n  - Demo accounts\n  - Usage warning\n  - App features\n  - App Images\n- ### Unbridled Spirit API docs (autogenerated by Postman)\n  - Currently available endpoints\n- ### Project initialization and setup\n  - Project Setup\n    - create-next-app\n  - Engine Locking\n    - .nvmrc\n    - .npmrc\n  - Quality Tools\n    - eslint\n    - prettier\n    - Git Hooks with husky\n  - VS Code Configuration\n    - Settings\n  - Debugging\n    - Launch\n    - Cross env\n- ### Quick start and running\n  - Clone repo\n  - ENV configs\n  - Docker configs **(optional)**\n  - MongoAtlas\n\n## What is Unbridled Spirit?\n\nUnbridled Spirit is an e-commerce website that allow users to order Bourbon Online and have it delivered directly on their door.\n\n### Technologies that i use\n\n- [NextJS](https://nextjs.org/ \"NextJS official doc\")\n- [MUI](https://mui.com/ \"Material UI official doc\")\n- [MongoDB](https://www.mongodb.com/ \"MongoDB website\")\n- [Docker](https://www.docker.com/ \"Docker website\")\n- [JWT (JSON Web Tokens)](https://jwt.io/ \"JWT doc\")\n- [NextAuth](https://next-auth.js.org/ \"NextAuth website\")\n- [TypeScript](https://www.typescriptlang.org/ \"TypeScript official doc\")\n- [Paypal](https://developer.paypal.com/home \"Paypal developer website\")\n\n### DEMO ACCOUNTS 🔐\n\n| **Website**      | **user**            | **password** |\n| ---------------- | ------------------- | ------------ |\n| Unbridled Spirit | demouser@google.com | demouser     |\n| Paypal payment   | demouser@google.com | demouser     |\n\n### ⚠️ USAGE WARNING ⚠️\n\nYou can use your own Paypal account under your own risk but as an advice make sure that the paypal payment modal have .sandbox at the beginning of the URL. Example below ↴\n\n\u003cimg src=\"https://user-images.githubusercontent.com/107090584/184007295-0b0124ce-544f-43c1-9815-e8d497b20a42.png\"  width=300 /\u003e\n\n## TODO\n- Improve code readability\n- Segment pages in smaller components\n- Goal-gradient in shopping path\n- Peak–end rule plus reward\n- Zeigarnik effect on checkout proccess\n\n## App features\n\n- Implement payment methods ✅\n- Create and handle orders ✅\n- Admin panel ✅\n- Create and maintain products ✅\n- ...\n\n## App Images\n\u003cimg src=\"https://user-images.githubusercontent.com/107090584/184010531-03549255-22f0-4cf6-9447-dd1c090ef744.jpg\" width=\"23%\"\u003e\u003c/img\u003e \u003cimg src=\"https://user-images.githubusercontent.com/107090584/184010547-99e24fc3-3f24-4d26-a370-aad0a233ee79.jpg\" width=\"23%\"\u003e\u003c/img\u003e \u003cimg src=\"https://user-images.githubusercontent.com/107090584/184010552-4e5aa668-3f80-4664-bf9d-6277e5440174.jpg\" width=\"23%\"\u003e\u003c/img\u003e \u003cimg src=\"https://user-images.githubusercontent.com/107090584/184010556-2855d8fd-a8da-436b-aa33-831772742f25.jpg\" width=\"23%\"\u003e\u003c/img\u003e \n\n# Project Setup and configs\n\n- Project Setup\n  - create-next-app\n- Engine Locking\n  - .nvmrc\n  - .npmrc\n- Quality Tools\n  - eslint\n  - prettier\n- Git Hooks with husky\n- VS Code Configuration\n- Debugging\n\n## Project Setup\n\nWe'll just begin by following NextJS docs and creating a default Next.js application with a Typescript template.\n\n```\nyarn create next-app --typescript app-name\n\ncd app-name\n```\n\nrecommended to run build to verify that everything works\n\n```\nyarn dev\n```\n\nand\n\n```\nyarn build\n```\n\n## Engine Locking\n\nWe would like for all developers working on this project to use the same Node engine and package manager in order not to cause collisions and incompatibilities.\n\n- **.nvmrc** tell other project devs which version of Node is used.\n- **.npmrc** tell other project devs which package manager is used.\n\n**.nvmrc** (make sure that .nvmrc match your current node version)\n\n| **RELEASE** | **STATUS**      | **CODENAME** | **END OF LIFE** |\n| ----------- | --------------- | ------------ | --------------- |\n| v14         | Maintenance LTS | Fermium      | 2023-04-30      |\n\n```\nlts/fermium\n```\n\n**.npmrc**\n\n```\nengine-strict=true\n```\n\nwe should specify engine restrictions in package.json to make it work:  \n**.package.json**\n\n```\n\"name\": \"your-app-name\",\n  \"author\": \"YOUR_NAME\",\n  \"description\": \"app description, something like: initial NextJS and TS Setup \",\n  \"version\": \"0.1.0\",\n  \"private\": true,\n  \"license\" : \"MIT\"\n  \"homepage\": \"your_repo_url\"\n  \"engines\": {\n    \"node\": \"\u003e=14.0.0\",\n    \"yarn\": \"\u003e=1.22.0\",\n    \"npm\": \"please-use-yarn\"\n  },\n  ...\n```\n\n## Quality Tools\n\nWe'll be implementing two tools: eslint and prettier in order to set some basic code styles and best practices standard that every contributor or team member should follow.\n\nESLint will be easier because it comes installed and pre-configured with Next.Js using -create next-app-.\nWe are just going to add a little bit of extra configuration and make it a bit stricter than it is by default.\n\n.eslintrc.json\n\n```\n{\n  \"extends\": [\"next\", \"next/core-web-vitals\", \"eslint:recommended\"],\n  \"globals\": {\n    \"React\": \"readonly\"\n  },\n  \"rules\": {\n    \"no-unused-vars\": [1, { \"args\": \"after-used\", \"argsIgnorePattern\": \"^_\" }]\n  }\n}\n```\n\nYou can test it out your config by running:\n\n```\nyarn lint\n```\n\nYou should get this kind of message:\n\n```\n✔ No ESLint warnings or errors\nDone in 1.23s.\n```\n\nPrettier will take care of automatically formatting our files for us and following certain configs that again should be followed by the team.\nIt's just be needed in development mode so we need to add -D\n\n```\nyarn add -D prettier\n```\n\nWe'll create two files in the root:\n\n.prettierrc (here we configure what kind of styles conventions we'll use along the project)\n\n```\n{\n  \"trailingComma\": \"es5\",\n  \"tabWidth\": 2,\n  \"semi\": true,\n  \"singleQuote\": true\n}\n```\n\n.prettierignore (just like any .ignore the following files will be ignored and not formatted)\n\n```\n.yarn\n.next\ndist\nnode_modules\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftomasferrerasdev%2Funbridled-spirit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftomasferrerasdev%2Funbridled-spirit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftomasferrerasdev%2Funbridled-spirit/lists"}