{"id":25268233,"url":"https://github.com/ozematt/shop.co_full-stack_react-nestjs","last_synced_at":"2026-04-08T11:31:04.090Z","repository":{"id":276165253,"uuid":"928425676","full_name":"ozematt/Shop.co_full-stack_React-NestJS","owner":"ozematt","description":"Shop.co E-commerce App | Full-stack Application Built with NestJS","archived":false,"fork":false,"pushed_at":"2025-03-28T11:50:36.000Z","size":4188,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-28T12:34:29.650Z","etag":null,"topics":["api-rest","docker","jwt-auth","nestjs","nodejs","postgresql","postman","prisma","react","react-hook-form","react-router","react-testing-library","redux-toolkit","tailwindcss","tanstack-query","typescript","vite","vitest","zod"],"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/ozematt.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-02-06T16:09:52.000Z","updated_at":"2025-03-28T11:50:40.000Z","dependencies_parsed_at":"2025-02-25T18:30:44.199Z","dependency_job_id":"617880a9-8e03-4178-b763-f1de2fd60a4d","html_url":"https://github.com/ozematt/Shop.co_full-stack_React-NestJS","commit_stats":null,"previous_names":["ozematt/shop.co_fullstack_nestjs","ozematt/shop.co_full-stack_react-nestjs"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ozematt%2FShop.co_full-stack_React-NestJS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ozematt%2FShop.co_full-stack_React-NestJS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ozematt%2FShop.co_full-stack_React-NestJS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ozematt%2FShop.co_full-stack_React-NestJS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ozematt","download_url":"https://codeload.github.com/ozematt/Shop.co_full-stack_React-NestJS/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247431231,"owners_count":20937915,"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":["api-rest","docker","jwt-auth","nestjs","nodejs","postgresql","postman","prisma","react","react-hook-form","react-router","react-testing-library","redux-toolkit","tailwindcss","tanstack-query","typescript","vite","vitest","zod"],"created_at":"2025-02-12T10:24:23.621Z","updated_at":"2025-12-30T19:01:11.882Z","avatar_url":"https://github.com/ozematt.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🛒 Shop.co — Built with NestJS 🚀\n\nWelcome to my project Shop.co! The project is available in two versions: one using [Express.js](https://github.com/ozematt/Shop.co_full-stack_React-Express.js) and the other using NestJS. It was created based on a free layout from Figma: [E-commerce Website Template (Freebie)](https://www.figma.com/community/file/1273571982885059508/e-commerce-website-template-freebie). The goal of this project is to practice working with modern frontend and backend tools.\n\n## 📌 Features\n\n- **Responsiveness**: The app adjusts to different screen sizes.\n- **State Management**: **Redux Toolkit** is used for global state management.\n- **Product Search**: Users have access to a product search function.\n- **Product Catalog**:\n  - The app displays products with their images, descriptions, prices, and categories.\n  - **Filtering** and **sorting** products (e.g., by price, category) features are available.\n- **Shopping Cart** – Users can use all the functionalities of the shopping cart.\n- **User Management**: Adding and storing users in the database.\n- **User Authentication**: After logging in, users can add products to the cart and place an order.\n- **Checkout Process** – Users go through the entire shopping process.\n- **User Panel** – Users have access to their account information, as well as their purchase history.\n- **Theme Support**: Users can switch between **light** and **dark** themes.\n\n##  📸 Screenshots\n\n### Main View\n\n![HomePage](./screenshots/Home-Page.webp)\n\n### Main View - Dark\n\n![Mobile](./screenshots/Home-Page_dark.webp)\n\n### Shop View \n\n![ShopView](./screenshots/Shop_light.webp)\n\n### Shop View - dark\n\n![ShopView](./screenshots/Shop_dark.webp)\n\n### Product Details\n\n![ShopView](./screenshots/Product-Details_light.webp)\n\n### Product Details - dark\n\n![ShopView](./screenshots/Product-Details_dark.webp)\n\n### Shopping Cart\n\n![CartEmpty](./screenshots/Cart_light.webp)\n\n### Shopping Cart - dark\n\n![CartEmpty](./screenshots/Cart_dark.webp)\n\n### Database Schema (to be expanded in the future)\n\n![DatabaseSchema](./screenshots/Database_schema.webp)\n\n## 🛠️ Technology\n\nThe project was built using the following technologies:\n\n### 💻 FRONTEND:\n\n- **React**: A JavaScript framework for building user interfaces.\n- **React-Router**: A library for managing routes in a React application.\n- **React Hook Form**: A tool for handling forms in React.\n- **TanStack Query**: A tool for managing data from APIs.\n- **TypeScript**: A superset of JavaScript that provides static typing, improving the reliability and stability of the app.\n- **TailwindCSS**: A modern CSS framework.\n- **Vite**: A modern build tool for frontend applications.\n- **Redux Toolkit**: A library for global state management.\n- **Material-UI (MUI)**: A CSS framework for styling components.\n- **Zod**: A data validation library.\n- **DummyJSON**: An external API that provides product data such as descriptions, prices, images, and categories (documentation: [https://dummyjson.com/docs](https://dummyjson.com/docs)).\n- **REST API**: Data is handled through API endpoints.\n- **Vitest** and **React Testing Library**: Tools for unit testing.\n\n### 🔧 BACKEND:\n\n- **Node.js/NestJS**: Backend development framework for scalable applications.\n- **Postgres**: A relational database used for storing data.\n- **Prisma**: Modern ORM for Node.js with type-safe queries and database migrations.\n- **JWT (JSON Web Tokens)**: A technology used for user authentication.\n- **CORS**: Middleware that enables resource sharing between different domains.\n- **bcryptjs**: A library for securely hashing user passwords before storing them in the database.\n- **Docker**: A containerization tool that allows easy deployment and management of the app in isolated environments.\n- **Postman**: A tool for testing and documenting APIs. Test collection files and environments are located in the `postman/` directory.\n\nThe project is set up to run in Docker containers, which ensures seamless integration between the frontend and backend, and maintains consistency across environments.\n\n## ⚙️ Installation\n\nTo install the project, follow the steps below:\n\n1. **Clone the repository:**\n   Fork the repository to your GitHub account, and then clone it locally.\n   ```sh\n   git clone https://github.com/ozematt/Shop.co_fullstack.git\n   ```\n2. **Navigate to the project directory:**\n   ```sh\n   cd Shop.co_fullstack\n   ```\n3. **Build and run the containers:**\n   Make sure Docker is installed and running. Then, run the following command.\n\n   ```sh\n   docker-compose up --build\n   ```\n\n4. **Access the app:**\n   - **Frontend**: http://localhost:5173/\n   - **Backend**: http://localhost:3005/\n\n## 🚧 Features in progress\n\n- **Database**: Expanding the database.\n- **Tests**: Adding unit tests and e2e tests.\n\nThank you for visiting the repository! 😊\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fozematt%2Fshop.co_full-stack_react-nestjs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fozematt%2Fshop.co_full-stack_react-nestjs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fozematt%2Fshop.co_full-stack_react-nestjs/lists"}