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.
- Host: GitHub
- URL: https://github.com/pripoliveira50/employee-management
- Owner: pripoliveira50
- License: mit
- Created: 2025-02-24T20:29:42.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-26T14:45:48.000Z (about 1 year ago)
- Last Synced: 2025-03-26T15:44:44.814Z (about 1 year ago)
- Topics: 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
- Language: TypeScript
- Homepage:
- Size: 1.1 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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
---
## π 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/)