Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/jhonatanmizu/challenge-payment-flow


https://github.com/jhonatanmizu/challenge-payment-flow

Last synced: 20 days ago
JSON representation

Awesome Lists containing this project

README

        

# **Challenge: Payment Flow 💰**

## **Goal**

The purpose of this app is to solve a challenge involving the implementation of a payment flow. It demonstrates the handling of various stages of a payment process, including selecting a payment method, applying installments, and displaying the payment results.

---

## **Routes**

The app contains the following key routes:

- **Payment Resume**: Displays a summary of the payment details.
- **Payment Success**: Shows a success screen upon completing a payment.
- **Processing Payment**: Indicates that the payment is being processed.

---

## **Features**

- Select a payment method.
- Apply and configure installment options for payments.

---

### Core Libraries

- **React**: A library for building user interfaces.
- **React Native**: A framework for building native apps using React.
- **Expo**: A framework and platform for universal React applications.

### Navigation

- **@expo/router**: Navigation for bottom tab bars in React Native.

### State Management

- **Zustand**: A small, fast, and scalable state management library.

### UI Components and Animations

- **@expo/vector-icons**: Icons for React Native projects.
- **react-native-paper**: UI library with components adhering to the Material Design guidelines.
- **lottie-react-native**: For rendering Lottie animations.
- **react-native-animatable**: For creating animations.

### Styling

- **@shopify/restyle**: A utility library for styling React Native components.

### Localization

- **i18next**: Internationalization framework.
- **react-i18next**: React bindings for i18next.
- **expo-localization**: Provides localization information.

---

## **Screenshots**

![Payment Flow Screenshot]()

---

## **Getting Started**

### **Prerequisites**

To run this project, you will need:

- A drink (highly recommend coffee ☕ for best performance)
- [Node.js](https://nodejs.org/)
- A code editor (recommendation: [Visual Studio Code](https://code.visualstudio.com/))
- The Expo Go app installed on your mobile device for testing on a physical device.
- [Android Studio](https://developer.android.com/studio) (optional, if you want to test the app on an emulator).

---

### **How to Run the Project**

1. Clone this repository to your local machine.
2. Install the project dependencies:
```bash
yarn install
```
3. Start the project with Expo:
```bash
npx expo start
```
4. Use Expo Go on your mobile device or connect an emulator to test the app.

---

## **Contributing**

Want to contribute? Here's how you can help:

1. Create a new branch for your changes:
```bash
git checkout -b your-branch-name
```
2. Implement your changes and commit them with a meaningful message:
```bash
git commit -m ":sparkles: Your message here"
```
3. Push your branch to the remote repository:
```bash
git push
```
4. Open a pull request and request a code review.

---

## **Git Workflow**

### Common Commands:

- **Create a new branch**:
```bash
git checkout -b your-branch-name
```
- **Switch to a branch**:
```bash
git checkout branch-name
```
- **Commit your changes**:
```bash
git commit -m "Your commit message"
```
- **Push changes to remote**:
```bash
git push
```
- **Pull updates from remote**:
```bash
git pull
```

---

## **Development Setup**

Need help setting up your React Native environment? Check out [this guide](https://react-native.rocketseat.dev) for step-by-step instructions.

---

## **Starting a Pull Request**

1. Create a branch based on the `main` branch:
```bash
git checkout -b feature/your-feature-name
```
2. Make your changes and commit to your branch.
3. Push your branch to the remote repository.
4. Create a pull request and ensure it is reviewed before merging.

---