├── .devcontainer ├── Dockerfile └── devcontainer.json ├── .editorconfig ├── .env.example ├── .eslintignore ├── .eslintrc ├── .github ├── CODEOWNERS ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── PULL_REQUEST_TEMPLATE.md └── workflows │ ├── build.yml │ ├── ci.yml │ ├── deployment.yml │ ├── lint.yml │ ├── pr-review.yml │ └── test.yml ├── .gitignore ├── .husky └── pre-commit ├── .markdownlint.json ├── .node-version ├── .npmrc ├── .prettierrc.js ├── README.md ├── __mocks__ ├── fileMock.js └── styleMock.js ├── dangerfile.ts ├── docs ├── PROJECT_STRUCTURE.md └── STATE_MANAGEMENT.md ├── index.html ├── jest.config.js ├── jest.setup.ts ├── package-lock.json ├── package.json ├── public ├── favicon.ico └── locales │ └── en │ ├── config.json │ └── translations.json ├── src ├── App.tsx ├── assets │ └── images │ │ ├── .gitkeep │ │ └── react.svg ├── components │ ├── Animation │ │ ├── Cracked.tsx │ │ ├── cracked.css │ │ └── slicer.scss │ ├── Animations │ │ └── index.tsx │ ├── Button │ │ ├── Button.test.tsx │ │ ├── Button.ts │ │ └── index.ts │ ├── CircleShape │ │ └── index.ts │ ├── FullScreenAnimation │ │ ├── FullScreenAnimation.tsx │ │ ├── index.ts │ │ └── styles.ts │ ├── Header │ │ ├── Desktop │ │ │ ├── Desktop.tsx │ │ │ ├── index.ts │ │ │ └── styles.ts │ │ ├── Header.test.tsx │ │ ├── Header.tsx │ │ ├── Mobile │ │ │ ├── Mobile.tsx │ │ │ ├── index.ts │ │ │ └── styles.ts │ │ ├── domain │ │ │ └── links.ts │ │ ├── index.ts │ │ └── styles.ts │ ├── Hero │ │ ├── index.tsx │ │ └── styles.ts │ ├── Loading │ │ ├── Loading.tsx │ │ └── index.ts │ ├── NanBrand │ │ ├── NanBrand.tsx │ │ └── index.ts │ ├── NanLabsIcon │ │ └── index.tsx │ ├── Repository │ │ ├── Repository.tsx │ │ ├── index.ts │ │ └── styles.ts │ ├── RingShape │ │ └── index.ts │ ├── ShapeBackground │ │ ├── index.tsx │ │ └── styles.ts │ └── Sparkles │ │ ├── index.tsx │ │ └── styles.ts ├── features │ └── _feature-template_ │ │ ├── README.md │ │ ├── assets │ │ └── .gitkeep │ │ ├── components │ │ └── .gitkeep │ │ ├── hooks │ │ └── .gitkeep │ │ ├── index.ts │ │ ├── providers │ │ └── .gitkeep │ │ ├── services │ │ └── .gitkeep │ │ ├── store │ │ └── .gitkeep │ │ ├── types │ │ └── .gitkeep │ │ └── utils │ │ └── .gitkeep ├── global.d.ts ├── hooks │ ├── useRandomInterval.ts │ ├── useScroll.ts │ └── useWindowSize.ts ├── i18n.ts ├── index.css ├── layouts │ ├── Default │ │ ├── index.tsx │ │ └── styles.ts │ └── FullWidth │ │ ├── index.tsx │ │ └── styles.ts ├── libs │ └── http │ │ ├── config.ts │ │ └── index.ts ├── main.tsx ├── pages │ ├── 404.tsx │ ├── ApiExample │ │ ├── ApiExample.tsx │ │ └── index.ts │ ├── CssExample │ │ ├── CssExample.tsx │ │ ├── foo.module.css │ │ ├── foo.module.scss │ │ └── index.ts │ ├── Landing │ │ ├── Landing.tsx │ │ └── index.ts │ ├── Links │ │ ├── Links.tsx │ │ └── index.ts │ ├── Powered │ │ ├── Powered.tsx │ │ └── index.ts │ └── UserDetail │ │ ├── UserDetail.tsx │ │ └── index.ts ├── providers │ └── ReactQueryProvider │ │ └── index.tsx ├── report-web-vitals.ts ├── routes │ ├── AppRoutes.tsx │ └── Routes.ts ├── services │ └── github.ts ├── test-utils │ ├── i18n │ │ ├── index.ts │ │ └── resources.ts │ └── index.tsx ├── theme │ ├── index.css │ ├── index.ts │ ├── reset.css │ └── variables.css ├── utils │ └── index.ts ├── vite-env.d.ts └── window.d.ts ├── tsconfig.json ├── tsconfig.node.json └── vite.config.ts /.devcontainer/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG VARIANT="16-buster" 2 | 3 | FROM mcr.microsoft.com/vscode/devcontainers/javascript-node:0-${VARIANT} 4 | -------------------------------------------------------------------------------- /.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | // For format details, see https://aka.ms/devcontainer.json. For config options, see the README at: 2 | // https://github.com/microsoft/vscode-dev-containers/tree/v0.192.0/containers/javascript-node 3 | { 4 | "name": "Node.js", 5 | "build": { 6 | "dockerfile": "Dockerfile", 7 | // Update 'VARIANT' to pick a Node version: 12, 14, 16 8 | "args": { "VARIANT": "16" } 9 | }, 10 | 11 | // Set *default* container specific settings.json values on container create. 12 | "settings": {}, 13 | 14 | // Add the IDs of extensions you want installed when the container is created. 15 | "extensions": ["dbaeumer.vscode-eslint"], 16 | 17 | // Use 'forwardPorts' to make a list of ports inside the container available locally. 18 | "forwardPorts": [3000], 19 | 20 | // Use 'postCreateCommand' to run commands after the container is created. 21 | "postCreateCommand": "npm install --legacy-peer-deps", 22 | 23 | // Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root. 24 | "remoteUser": "node" 25 | } 26 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # http://editorconfig.org 2 | 3 | root = true 4 | 5 | [*] 6 | charset = utf-8 7 | indent_style = space 8 | indent_size = 2 9 | end_of_line = lf 10 | insert_final_newline = true 11 | trim_trailing_whitespace = true 12 | 13 | [*.md] 14 | insert_final_newline = false 15 | trim_trailing_whitespace = false 16 | -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- 1 | VITE_APP_BASE_URL= 2 | VITE_API_URL= 3 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | 3 | # Ignore artifacts: 4 | coverage/ 5 | dist/ 6 | dev-dist/ 7 | public/ 8 | __mocks__/ 9 | 10 | jest.config.js 11 | postcss.config.js 12 | *.d.ts 13 | 14 | /src/theme/ 15 | -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["plugin:react/recommended", "plugin:prettier/recommended", "plugin:@typescript-eslint/recommended"], 3 | "parserOptions": { 4 | "project": "./tsconfig.json", 5 | "ecmaVersion": 2020, 6 | "ecmaFeatures": { 7 | "jsx": true 8 | }, 9 | "sourceType": "module" 10 | }, 11 | "env": { 12 | "browser": true, 13 | "commonjs": true, 14 | "node": true, 15 | "es2020": true, 16 | "jest/globals": true 17 | }, 18 | "plugins": ["react", "jsx-a11y", "import", "jest"], 19 | "overrides": [ 20 | { 21 | "files": ["**/*.ts", "**/*.tsx"], 22 | "rules": { 23 | "react/prop-types": "off", 24 | "no-restricted-imports": [ 25 | "error", 26 | { 27 | "patterns": ["@/features/*/*"] 28 | } 29 | ] 30 | } 31 | } 32 | ] 33 | } 34 | -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @ulises-jeremias @rpmolina 2 | -------------------------------------------------------------------------------- /.github/CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Code of Conduct 2 | 3 | The App code of conduct is derived from the Ruby code of conduct. This document provides community guidelines for a safe, respectful, productive, and collaborative place for any person who is willing to contribute to the App community. It applies to all “collaborative space”, which is defined as community communications channels. Any violations of the code of conduct may be reported by contacting one or more of the project maintainers either directly or via email to ulisescf.24@gmail.com. 4 | 5 | - Participants will be tolerant of opposing views. 6 | - Participants must ensure that their language and actions are free of personal attacks and disparaging personal remarks. 7 | - When interpreting the words and actions of others, participants should always assume good intentions. 8 | - Behaviour that the project maintainers consider to be harassment will not be tolerated. 9 | -------------------------------------------------------------------------------- /.github/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # App's contributing guide 2 | 3 | When contributing to this repository, please first discuss the change you wish to make via issue, email, or any other method with the owners of this repository before making a change. 4 | 5 | Please note we have a [code of conduct](./CODE_OF_CONDUCT.md), please follow it in all your interactions with the project. 6 | 7 | You can help contribute to App in many ways, including: 8 | 9 | ## Pull Requests 10 | 11 | 1. Fork the App repository. 12 | 2. Create a new branch for each feature or improvement. 13 | 3. Send a pull request from each feature branch to the **develop** branch. 14 | 15 | It is very important to separate new features or improvements into separate feature branches, and to send a 16 | pull request for each branch. This allows us to review and pull in new features or improvements individually. 17 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Bug report 4 | title: '' 5 | labels: 'Type: Bug' 6 | assignees: '' 7 | --- 8 | 9 | **App version:** 10 | 11 | **OS:** 12 | 13 | **What did you do?** 14 | 15 | **What did you expect to see?** 16 | 17 | **What did you see instead?** 18 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: 'Type: Feature Request' 6 | assignees: '' 7 | --- 8 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ## What's this PR do? 2 | 3 | _Summary of changes in this PR or what it accomplishes._ 4 | 5 |