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

https://github.com/pripoliveira50/employee-management

πŸ“± Employee Management is a mobile application developed using React Native and Expo, designed to efficiently manage employees by providing quick access, clear organization, and better control over team information.
https://github.com/pripoliveira50/employee-management

app-development expo jest jest-test mobile-app mobile-application mobile-application-development react-hook-form react-native react-native-app react-query testing-library testing-library-react typescript

Last synced: about 1 month ago
JSON representation

πŸ“± Employee Management is a mobile application developed using React Native and Expo, designed to efficiently manage employees by providing quick access, clear organization, and better control over team information.

Awesome Lists containing this project

README

          

# πŸ‘₯ Employee Management

## πŸ“– Project Overview

**Employee Management** is a mobile application built with **React Native** and **Expo**, designed to streamline employee management within organizations. It provides an intuitive interface to efficiently view, search, and organize employee information.

---

## πŸš€ Technologies Used

- **React Native 76**
- **Expo**
- **TypeScript**
- **Jest** (Unit Testing)
- **Testing Library**
- **TanStack Query (React Query)**
- **React Hook Form**

---

## πŸ“‚ Folder Structure

```bash
.
β”œβ”€β”€ android/ # Android project (Expo Managed)
β”œβ”€β”€ ios/ # iOS project (Expo Managed)
β”œβ”€β”€ src/ # Main source code
β”‚ β”œβ”€β”€ components/ # Reusable UI components
β”‚ β”œβ”€β”€ global/tokens/ # Global design tokens and styles
β”‚ β”œβ”€β”€ infra/ # Project infrastructure and integrations
β”‚ β”œβ”€β”€ screens/ # Application screens
β”‚ └── utils/ # Utility functions
β”œβ”€β”€ test/ # Test configurations
β”œβ”€β”€ jest.config.ts # Jest configuration
β”œβ”€β”€ tsconfig.json # TypeScript configuration
β”œβ”€β”€ metro.config.js # Metro bundler configuration
β”œβ”€β”€ package.json # Project dependencies
└── README.md # Project documentation
```

---

## πŸ›  Project Decisions

### πŸ— Folder Structure

The project’s folder structure emphasizes **modularity**, **reusability**, and clear separation of concerns:

- **`components/`**: Contains reusable UI components.
- **`global/tokens/`**: Stores global design tokens to ensure visual consistency.
- **`infra/`**: Includes core infrastructure and integration settings.
- **`screens/`**: Organizes application screens in a modular way.
- **`utils/`**: Houses helper functions to prevent code duplication.

This modular structure enhances **scalability** and simplifies **maintenance**.

### βš™οΈ Technology Choices

The project leverages **React Native 76** and **Expo** for fast, cross-platform development, reducing complexity in native configurations.

**Core technologies rationale:**

- **Expo**: Simplifies setup, deployment, and testing on devices.
- **TypeScript**: Enhances code safety and maintainability.
- **Jest + Testing Library**: Provides reliable, user-centric unit testing.
- **React Query**: Efficiently manages async states, caching, and data synchronization.
- **React Hook Form**: Offers performant and flexible form handling.

### βœ… Testing Setup

Testing is central to ensuring app reliability and functionality. The combination of **Jest** and **Testing Library** is chosen for:

- Seamless integration with React Native.
- Realistic user interaction simulations.
- Readable and maintainable test cases using `getByText` and `fireEvent`.

The `test/` directory is intentionally centralized to keep testing configurations organized.

### πŸ”§ Tools and Configurations

Essential configuration files included in the project:

- **`jest.config.ts`**: Optimizes Jest for React Native and Expo.
- **`metro.config.js`**: Enhances Metro bundler performance.
- **`tsconfig.json`**: Defines TypeScript rules for type safety and consistency.

---

## πŸ“‹ Prerequisites

Ensure the following are installed on your system:

- [Node.js](https://nodejs.org/) (recommended: v18+)
- [Expo CLI](https://docs.expo.dev/get-started/installation/):

```sh
npm install -g expo-cli
```

- [Yarn](https://yarnpkg.com/) (optional, recommended)

---

## 🚦 Getting Started

1. **Clone the repository:**

```sh
git clone https://github.com/pripoliveira50/employee-management.git
cd employee-management
```

2. **Install dependencies:**

```sh
yarn install
```

3. **Start Expo:**

```sh
yarn start
```

4. **Run on Emulator or Device:**

- **Android:**

```sh
yarn android
```

- **iOS (macOS only):**

```sh
yarn ios
```

---

## βœ… Running Tests

Execute unit tests using **Jest**:

```sh
yarn test
```

---

## 🎨 Interface Preview


App Preview

---

## πŸ“œ License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

---

Made with ❀️ by [Priscila Oliveira](https://github.com/pripoliveira50/)