Giter VIP home page Giter VIP logo

creative-fabrica-assignment's Introduction

Creative Fabrica

Project structure

Creative-Fabrica-Assignment
├── src
│ ├── components                        # The shared components like (Buttons, Card, Link ...etc)
│ │ ├── {ComponentName}\*\*
│ │ │ ├── index.tsx
│ │ │ ├── {ComponentName}.tsx
│ │ │ ├── {ComponentName}.types.tsx     # TS interface for props
│ │ │ ├── utils                         # (internal utils/ they could perfectly belong inside the component folder)
│ │ │ ├── __tests__
│ │ │ │  └── {ComponentName}.test.tsx
│ ├── constants                         # The common constants that could be used in multiple places
│ ├── screens                           # Combination of one or more sections that will construct the main content
│ │ ├── {screenName}\*\*
│ │ │ ├── index.tsx
│ │ │ ├── {screenName}.tsx
│ │ │ ├── {screenName}.types.tsx        # TS interface for props
│ │ │ ├── utils                         # (internal utils/ they could perfectly belong inside the screens folder)
│ │ │ ├── __tests__
│ │ │ │  └── {screenName}.test.tsx
│ ├── sections                          # The Sections of the page (Header, Footer, Hero, ...etc)
│ │ ├── {sectionName}\*\*
│ │ │ ├── index.tsx
│ │ │ ├── {sectionName}.tsx
│ │ │ ├── {sectionName}.types.tsx       # TS interface for props
│ │ │ ├── utils                         # (internal utils/ they could perfectly belong inside the sections folder)
│ │ │ ├── __tests__
│ │ │ │  └── {sectionName}.test.tsx
│ ├── services                          # The functions, configurations, and constants for the API requests
│ ├── utils                             # (Generic utils/ they could be used in multiple places)
│ ├── App.tsx
│ ├── AppErrorBoundary.tsx
│ ├── AppWrapper.tsx
│ ├── index.css
│ └── main.tsx
├── test-utils                          # Testing Utils
├── .eslintrc.yml
├── .prettier.yml
├── index.html
├── jest.config.cjs
├── package.json
├── postcss.config.js
├── README.md
├── tailwind.config.js
├── tsconfig.json
├── tsconfig.node.json
└── vite.config.ts

Developer quick start

Clone repository

Run npm install in order to install the required dependencies

Run npm run dev to start the project in dev mode.

Build

Run npm run build builds the project in the dist folder.

Testing

npm run test runs jest.

npm run test:coverage runs jest and produce a coverage report.

External libraries

  • react is used to simplify the project development process by employing a component-based approach. By leveraging the advantages of JSX, it enhances project scalability and provides access to a rich ecosystem, facilitating better development.

  • react-query is used ini order to have automated caching and it will enhance the project's scalability.

  • react-error-boundary is used to enhance the user experience by capturing errors without causing disruptions to the application.

  • typescript is used to reduce bugs, enhance type safety, and increase code quality.

  • tailwindcss is chosen for its developer-friendly approach and its ability to maintain consistent coding styles.

  • vite is chosen for its fast development server, shorter build times, developer-friendly, and excellent documentation.

  • Jest is used for unit test and Testing-library is used for rendering and writing assertions.

  • eslint is used to enhance and enforce code quality and consistency, reducing bugs and promoting a unified and consistent code style.

  • prettier is used to maintain a uniform code style and automating the correction of code formatting.

  • eslint and prettier has been installed and configured via running npx do-me-lint more info here.

creative-fabrica-assignment's People

Contributors

fadi-rasheed avatar fadirasheed avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.