Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/harinathlee/ford-app

This is repo where we try to figure out the architecture, folder structure and dependencies that we need to follow in the initial state of Ford project development.
https://github.com/harinathlee/ford-app

eslint jest js postcss react rtk rtk-query rtl tailwindcss vitest vitest-ui

Last synced: about 1 month ago
JSON representation

This is repo where we try to figure out the architecture, folder structure and dependencies that we need to follow in the initial state of Ford project development.

Awesome Lists containing this project

README

        

# Ford-App

This is a repository where we try to figure out the architecture, folder structure, and dependencies that we need to follow in the initial state of the Ford project development

This is a React application that uses Redux for state management. The app is built using the latest version of React and utilizes the `react-dom/client` API to render the application.

## React + Vite

This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.

Currently, two official plugins are available:

- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh
- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh

## Architecture

The application is structured around the following components:

* `App.jsx`: The main application component that renders the UI.
* `store/store.js`: The Redux store that manages the application's state.
* `index.js`: The entry point of the application that sets up the React DOM and renders the App component.

## Folder Structure

* `node_modules/`: The dependencies folder (managed by npm or yarn).
* `src/`: The source code folder.
+ `App.jsx`: The main application component.
+ `store/`: The Redux store folder.
- `store.js`: The Redux store configuration.
+ `index.js`: The entry point of the application.
+ `index.css`: The global stylesheet for the application.
* `build/`: The production build folder (generated by `npm run build`).
* `package.json`: The project's package file, which contains metadata for the project, including dependencies and scripts.
* `README.md`: This file, which provides information about the project and its structure.
* `.eslintrc.json`: The ESLint configuration file.
* `.prettierrc.json`: The Prettier configuration file.
* `vite.config.js`: The Vite configuration file.
* `tailwind.config.js`: The Tailwind CSS configuration file.
* `postcss.config.js`: The PostCSS configuration file.
* `jest.config.js`: The Jest configuration file.
* `tests/`: The folder for unit tests.
+ `setup.js`: The setup file for Jest tests.

## Dependencies

The project depends on the following packages:

**Production Dependencies**

* `react`: The React library.
* `react-dom`: The React DOM library.
* `react-redux`: The React Redux library.
* `redux`: The Redux library.
* `firebase`: The Firebase library for authentication and data storage.
* `node-forge`: A JavaScript implementation of the TLS protocol.

**Development Dependencies**

* `@eslint/js`: The ESLint JavaScript plugin for code linting.
* `@testing-library/jest-dom`: The Jest testing library for React DOM.
* `@testing-library/react`: The Jest testing library for React.
* `@types/react`: The type definitions for React.
* `@types/react-dom`: The type definitions for React DOM.
* `@vitejs/plugin-react`: The Vite plugin for React.
* `autoprefixer`: A plugin for PostCSS to add vendor prefixes to CSS rules.
* `eslint`: The ESLint code linter.
* `eslint-plugin-jsx-a11y`: The ESLint plugin for JSX accessibility rules.
* `eslint-plugin-react`: The ESLint plugin for React rules.
* `eslint-plugin-react-hooks`: The ESLint plugin for React Hooks rules.
* `eslint-plugin-react-refresh`: The ESLint plugin for React Refresh rules.
* `globals`: A package for global variables in JavaScript.
* `jsdom`: A JavaScript implementation of the DOM.
* `npm-audit-html`: A package for generating HTML reports for npm audit results.
* `postcss`: A plugin for transforming CSS with JavaScript.
* `prettier`: A code formatter for JavaScript, CSS, and other languages.
* `tailwindcss`: A utility-first CSS framework.
* `vite`: A development server for building and serving the application.
* `vitest`: A testing framework for Vite.

To install all these dependencies, run the following command:

```sh
npm install --save-dev @eslint/js @testing-library/jest-dom @testing-library/react @types/react @types/react-dom @vitejs/plugin-react autoprefixer eslint eslint-plugin-jsx-a11y eslint-plugin-react eslint-plugin-react-hooks eslint-plugin-react-refresh globals jsdom npm-audit-html postcss prettier tailwindcss vite vitest
```

## Scripts

The project uses the following scripts:

* `dev`: Starts the development server.
* `build`: Builds the application for production.
* `lint`: Runs the ESLint code linter.
* `fixlint`: Fixes ESLint errors and warnings.
* `preview`: Starts the production server.
* `audit`: Runs the npm audit tool to check for vulnerabilities.
* `test`: Runs the unit tests using Vitest.
* `test:ui`: Runs the unit tests using Vitest with the UI.

**Getting Started**

To get started with the project, run the following commands:

`npm install` to install the dependencies.

`npm run dev` to start the development server.

This will start the development server and open the application in your default browser.

**Building the Application**

To build the application for production, run the following command:

`npm run build`

This will create a production-ready build of the application in the `build` folder.

**Running Tests**

To run the unit tests, run the following command:

`npm run test`

This will run the unit tests using Vitest.

`npm run test:ui`

This will run the unit tests using Vitest with the UI.

## Configuration

The project uses the following configuration files:

* `package.json`: The project's package file.
* `index.css`: The global stylesheet for the application.
* `.eslintrc.json`: The ESLint configuration file.
* `.prettierrc.json`: The Prettier configuration file.
* `vite.config.js`: The Vite configuration file.
* `tailwind.config.js`: The Tailwind CSS configuration file.
* `postcss.config.js`: The PostCSS configuration file.
* `jest.config.js`: The Jest configuration file.
* `README.md`: This file, which provides information about the project and its structure.

**Notes**

* This project uses the latest version of React and Redux.
* The project uses the `react-dom/client` API to render the application.
* The project uses Jest for unit testing.
* The project uses ESLint for code linting.
* The project uses Vite for building and serving the application.
* The project uses Vitest for unit testing.