{"id":15198816,"url":"https://github.com/t0malexander/basics-store","last_synced_at":"2025-03-03T13:47:09.540Z","repository":{"id":164705831,"uuid":"640142940","full_name":"T0mAlexander/Basics-Store","owner":"T0mAlexander","description":"A minimalistic fashion store mobile application built with  Expo CLI, React Native, Typescript, PostgreSQL, Nest.js, Prisma, Docker and Styled Components","archived":false,"fork":false,"pushed_at":"2023-07-17T19:01:12.000Z","size":5009,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"latest","last_synced_at":"2024-11-14T07:47:44.882Z","etag":null,"topics":["docker","dotenv","eslint","expo","jwt","nest-js","nodejs","postgresql","prisma","react-native","styled-components","typescript","vitest","zod"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":false,"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/T0mAlexander.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":"2023-05-13T06:00:10.000Z","updated_at":"2024-01-28T03:57:08.000Z","dependencies_parsed_at":"2024-08-21T02:48:17.240Z","dependency_job_id":null,"html_url":"https://github.com/T0mAlexander/Basics-Store","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/T0mAlexander%2FBasics-Store","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/T0mAlexander%2FBasics-Store/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/T0mAlexander%2FBasics-Store/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/T0mAlexander%2FBasics-Store/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/T0mAlexander","download_url":"https://codeload.github.com/T0mAlexander/Basics-Store/tar.gz/refs/heads/latest","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":233825657,"owners_count":18736217,"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","dotenv","eslint","expo","jwt","nest-js","nodejs","postgresql","prisma","react-native","styled-components","typescript","vitest","zod"],"created_at":"2024-09-28T01:41:51.551Z","updated_at":"2025-01-14T00:25:02.989Z","avatar_url":"https://github.com/T0mAlexander.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Basics Store (em construção 🚧)\n\n\u003e ## Descrição\n\u003e\n\u003e Aplicativo de e-commerce exclusivo para dispositivos móveis com similaridades sistêmicas a aplicações sólidas do mercado como as chinesas Shopee e Shein, e também brasileiras como Zattini, Netshoes e Kanui. Será necessário ter instalado Expo CLI, Expo Go, Docker e Node.js instalados para testagem da aplicação.\n\n## 🧰 Bibliotecas, frameworks e ferramentas\n\n\u003e **⚠️ Aviso:** esta aplicação ainda está em construção até o presente momento. A estimativa mínima de finalização é em 45 dias ou mais. As ferramentas listadas abaixo estarão separados por uso atual ou ser estipulada futuramente em razão das regras de negócio.\n\n### 🔧 Em uso\n\n- \u003cimg height=\"16\" width=\"15\" src=\"https://res.cloudinary.com/tommello/image/upload/v1674280418/Github/Profile%20Markdown/react_native_uozofa.svg\"/\u003e **React Native:** framework JavaScript para o desenvolvimento de aplicativos móveis multiplataforma. Ele permite que os desenvolvedores escrevam código em JavaScript que é executado diretamente nos dispositivos móveis, resultando em aplicativos nativos para iOS e Android\n\n- \u003cimg height=\"15\" width=\"15\" src=\"https://res.cloudinary.com/tommello/image/upload/v1683264432/expo_dark_icon_stspgv.png\" /\u003e **Expo:** plataforma de desenvolvimento que permite a criação de aplicativos móveis nativos utilizando React Native. Ela fornece uma série de ferramentas, bibliotecas e serviços para acelerar o desenvolvimento de aplicativos móveis\n\n- \u003cimg height=\"16\" width=\"15\" src=\"https://cdn.jsdelivr.net/gh/devicons/devicon/icons/typescript/typescript-original.svg\"/\u003e **Typescript:** linguagem de programação que estende o JavaScript adicionando tipos estáticos opcionais. O TypeScript oferece recursos avançados de tipagem, autocompletar, refatoração e verificação estática de código, o que pode aumentar a produtividade e ajudar a evitar erros em tempo de execução\n\n- \u003cimg height=\"16\" width=\"15\" src=\"https://cdn.jsdelivr.net/gh/devicons/devicon/icons/babel/babel-original.svg\" /\u003e **Babel:** ferramenta de transcompilação de código JavaScript. O Babel permite que os desenvolvedores escrevam código JavaScript moderno, utilizando recursos das versões mais recentes da linguagem, e o converta para uma versão compatível com navegadores e ambientes mais antigos\n\n- \u003cimg height=\"16\" width=\"15\" src=\"https://cdn.jsdelivr.net/gh/devicons/devicon/icons/eslint/eslint-original.svg\" /\u003e **ESLint:** ferramenta de análise de código estática que ajuda a identificar problemas de formatação, estilo e possíveis erros em código JavaScript e TypeScript. O ESLint permite configurar regras personalizadas e integrá-las ao fluxo de desenvolvimento para manter um código limpo e consistente\n\n- \u003cimg height=\"16\" width=\"15\" src=\"https://res.cloudinary.com/tommello/image/upload/v1682825523/Github/Profile%20Markdown/prisma-orm_lxicqu.svg\" /\u003e **Prisma:** camada de acesso a dados (ORM) que simplifica a interação com bancos de dados relacionais. O Prisma permite definir o modelo de dados, gerar automaticamente o esquema do banco de dados e fornece um cliente poderoso para realizar consultas e operações no banco de dados\n\n- \u003cimg height=\"16\" width=\"15\" src=\"https://res.cloudinary.com/tommello/image/upload/v1680288855/Github/Profile%20Markdown/docker_fpe43h.svg\" /\u003e **Docker:** ferramenta para criação, implantação e execução de aplicativos em contêineres. O Docker permite empacotar um aplicativo e suas dependências em um contêiner isolado, enquanto o Docker Compose facilita a definição e o gerenciamento de múltiplos contêineres interligados\n\n- \u003cimg height=\"16\" width=\"15\" src=\"https://cdn.jsdelivr.net/gh/devicons/devicon/icons/postgresql/postgresql-original.svg\" title=\"PostgreSQL\" /\u003e **PostgreSQL:** banco de dados relacional de código aberto. Ele fornece recursos avançados de armazenamento, consulta e manipulação de dados, sendo amplamente utilizado em aplicações web e móveis\n\n- \u003cimg height=\"16\" width=\"15\" src=\"https://cdn.jsdelivr.net/gh/devicons/devicon/icons/nestjs/nestjs-plain.svg\" /\u003e **Nest.js:** framework de desenvolvimento para Node.js, baseado na linguagem TypeScript e na arquitetura de aplicativos orientada por módulos. O Nest.js visa fornecer uma estrutura robusta e escalável para a criação de aplicativos back-end altamente eficientes e modernos\n\n- \u003cimg height=\"16\" width=\"15\" src=\"https://cdn.jsdelivr.net/gh/devicons/devicon/icons/nodejs/nodejs-original.svg\"/\u003e **Node.js:** ambiente de execução JavaScript baseado no motor V8 do Google Chrome. Ele permite que o JavaScript seja executado no lado do servidor, permitindo a construção de aplicações web escaláveis e de alta performance\n\n- \u003cimg height=\"16\" width=\"15\" src=\"https://cdn.jsdelivr.net/gh/devicons/devicon/icons/jest/jest-plain.svg\" /\u003e **Jest:** ferramenta de teste criado e mantida pela Meta Incorporation para aplicações baseadas em diversos frameworks e bibliotecas que permite a execução de testes unitários e de integração de forma simples e eficiente\n\n- \u003cimg height=\"16\" width=\"15\" style=\"border-radius: 30px\" src=\"https://res.cloudinary.com/tommello/image/upload/v1683264139/express_js_icon_i3mjtq.png\" /\u003e **Express.js:** framework de desenvolvimento de aplicações web baseadas em Node.js, amplamente adotado pela comunidade de desenvolvedores. Ele permite criar APIs e aplicativos web de forma eficiente, fornecendo uma camada abstrata para lidar com tarefas comuns, como roteamento, manipulação de solicitações e respostas, gerenciamento de sessões e muito mais\n\n- \u003cimg height=\"16\" width=\"15\" src=\"https://res.cloudinary.com/tommello/image/upload/v1684115038/dotenv_b14c3a.svg\" /\u003e **Dotenv:** biblioteca que permite carregar variáveis de ambiente a partir de um arquivo .env. Ele facilita a configuração de variáveis sensíveis, como chaves de API, em um ambiente de desenvolvimento e produção\n\n- \u003cimg height=\"16\" width=\"15\" src=\"https://avatars.githubusercontent.com/u/24602613?s=48\u0026v=4\" /\u003e **class-validator:** biblioteca para validação de dados no Nest.js que utiliza decoradores para definir regras de validação nas propriedades dos objetos. Auxilia na garantia, integridade e conformidade dos dados. Importante para a segurança e consistência dos dados em aplicações web e APIs.\n\n- \u003cimg height=\"16\" width=\"15\" src=\"https://res.cloudinary.com/tommello/image/upload/v1684115109/jwt_de2egk.svg\" /\u003e **JSON Web Token (JWT):** padronização de tokens de acesso baseados em JSON. É amplamente utilizado para autenticação e autorização em aplicações web e APIs, permitindo o compartilhamento seguro de informações entre diferentes sistemas\n\n### 🎯 Usos futuros e previstos\n\n\u003e Sem previsões de uso até o momento de novas bibliotecas e/ou frameworks!\n\n## 💾 Modelagem do Banco de Dados\n\n### Tabela User 👤\n\n**Descrição:** representa um usuário na aplicação.\n\n| Coluna        | Descrição                                          |\n| ------------- | -------------------------------------------------- |\n| id            | ID do usuário (UUID)                               |\n| name          | Nome do usuário                                    |\n| email         | Email do usuário (único)                           |\n| password      | Senha do usuário                                   |\n| creation_date | Data de criação do usuário                         |\n| notifications | Relação com as notificações recebidas pelo usuário |\n| cartItems     | Relação com os itens do carrinho do usuário        |\n| Wishlist      | Relação com a lista de desejos do usuário          |\n\n### Tabela Seller 🏪\n\n**Descrição:** representa um vendedor na aplicação\n\n| Coluna        | Descrição                                            |\n| ------------- | ---------------------------------------------------- |\n| seller_id     | ID do vendedor (UUID)                                |\n| name          | Nome do vendedor                                     |\n| email         | Email do vendedor (único)                            |\n| password      | Senha do vendedor                                    |\n| creation_date | Data de criação do vendedor                          |\n| products      | Relação com os produtos vendidos pelo vendedor       |\n| notifications | Relação com as notificações enviadas para o vendedor |\n\n### Tabela Notification 🔔\n\n**Descrição:** representa uma notificação enviada para um usuário ou vendedor\n\n| Coluna       | Descrição                                          |\n| ------------ | -------------------------------------------------- |\n| id           | ID da notificação (UUID)                           |\n| message      | Mensagem da notificação                            |\n| readCheck    | Indica se a notificação foi lida (booleano)        |\n| receipt_date | Data de recebimento da notificação                 |\n| user_id      | ID do usuário destinatário da notificação          |\n| user         | Relação com o usuário destinatário da notificação  |\n| seller       | Relação com o vendedor destinatário da notificação |\n| seller_id    | ID do vendedor destinatário da notificação         |\n\n### Tabela Wishlist 🌟\n\n**Descrição:** representa a lista de desejos de um usuário\n\n| Coluna     | Descrição                                              |\n| ---------- | ------------------------------------------------------ |\n| user_id    | ID do usuário (único)                                  |\n| user       | Relação com o usuário                                  |\n| products   | Relação com os produtos adicionados à lista de desejos |\n| product_id | ID do produto adicionado à lista de desejos            |\n\n### Tabela Cart 🛒\n\n**Descrição:** representa o carrinho de compras de um usuário\n\n| Coluna        | Descrição                                   |\n| ------------- | ------------------------------------------- |\n| user_id       | ID do usuário (único)                       |\n| user          | Relação com o usuário                       |\n| items         | Relação com os itens do carrinho de compras |\n| creation_date | Data de criação do carrinho de compras      |\n\n### Tabela CartItem 🛍️\n\n**Descrição:** representa um item do carrinho de compras\n\n| Coluna     | Descrição                         |\n| ---------- | --------------------------------- |\n| item_id    | ID do item (autoincremental)      |\n| product    | Relação com o produto             |\n| product_id | ID do produto                     |\n| cart       | Relação com o carrinho de compras |\n| cart_owner | ID do proprietário do carrinho    |\n\n### Tabela ProductCategory 🏷️\n\n**Descrição:** representa uma categoria de produto\n\n| Coluna        | Descrição                                        |\n| ------------- | ------------------------------------------------ |\n| category_id   | ID da categoria (autoincremental)                |\n| name          | Nome da categoria                                |\n| creation_date | Data de criação da categoria                     |\n| products      | Relação com os produtos pertencentes à categoria |\n\n### Tabela Product 👕\n\n**Descrição:** representa um produto\n\n| Coluna          | Descrição                                                         |\n| --------------- | ----------------------------------------------------------------- |\n| product_id      | ID do produto (UUID)                                              |\n| seller          | Relação com o vendedor                                            |\n| seller_id       | ID do vendedor                                                    |\n| name            | Nome do produto                                                   |\n| price           | Preço do produto                                                  |\n| photos          | Relação com as fotos do produto                                   |\n| colours         | Relação com as cores do produto                                   |\n| product_details | Relação com os detalhes do produto                                |\n| soldCount       | Quantidade de vendas do produto                                   |\n| rating          | Avaliação do produto                                              |\n| quantity        | Quantidade disponível do produto                                  |\n| creation_date   | Data de criação do produto                                        |\n| stock           | Estoque do produto                                                |\n| category        | Relação com a categoria do produto                                |\n| category_id     | ID da categoria do produto                                        |\n| isCartItem      | Relação com os itens do carrinho de compras em que o produto está |\n| favouritedCount | Contagem de vezes em que o produto foi adicionado aos favoritos   |\n| wishlist_id     | ID da lista de desejos em que o produto foi adicionado            |\n\n### Tabela Photo 🖼️\n\n**Descrição:** representa uma foto associada a um produto\n\n| Coluna     | Descrição                              |\n| ---------- | -------------------------------------- |\n| id         | ID da foto (autoincremental)           |\n| url        | URL da foto                            |\n| product    | Relação com o produto associado à foto |\n| product_id | ID do produto associado à foto         |\n\n### Tabela Colour 🎨\n\n**Descrição:** representa uma cor associada a um produto\n\n| Coluna     | Descrição                             |\n| ---------- | ------------------------------------- |\n| id         | ID da cor (autoincremental)           |\n| name       | Nome da cor                           |\n| product    | Relação com o produto associado à cor |\n| product_id | ID do produto associado à cor         |\n\n### Enum ProductGender ♂️♀️\n\n**Descrição:** representa o gênero de um produto\n\n| Valor   | Descrição |\n| ------- | --------- |\n| Male    | Masculino |\n| Female  | Feminino  |\n| Unissex | Unissex   |\n\n### Tabela Description 📝\n\n**Descrição:** representa os detalhes de um produto\n\n| Coluna     | Descrição                                    |\n| ---------- | -------------------------------------------- |\n| id         | ID dos detalhes (autoincremental)            |\n| product_id | ID do produto (único)                        |\n| product    | Relação com o produto associado aos detalhes |\n| gender     | Gênero do produto                            |\n| material   | Material do produto                          |\n| sleeveType | Tipo de manga do produto                     |\n\n## 📑 Instalação e uso\n\n\u003e ### 🔨 Em construção\n\u003e\n\u003e Esta seção encontra-se em construção e em breve será preenchida com instruções detalhadas sobre como instalar e utilizar esta aplicação\n\n## ⚖️ Termos de uso\n\nEste projeto é de livre uso para outros sem nenhuma restrição para cópias ou forks 👍🏻\n\n### 🖋️ Autor: Tom Alexander\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ft0malexander%2Fbasics-store","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ft0malexander%2Fbasics-store","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ft0malexander%2Fbasics-store/lists"}