# Bank Branch Queue Management System

This project aims to develop a comprehensive queue management system for bank branches, comprising three main interfaces: one for tellers, one for admins, and a mobile app for customers. These interfaces will connect to a backend system built using Java's Spring Boot framework.

## Interfaces

### Teller Interface
The Teller Interface provides functionality for tellers to manage their availability status, allowing them to switch between available and non-available states. This interface will be developed using React.
```bash
pnpm dev --port 3001
```

### Admin Interface
The Admin Interface is designed for administrators to oversee and manage both queues and tellers efficiently. Admins will have the ability to monitor queue statuses, assign tasks to tellers, and make necessary adjustments as needed. This interface will also be developed using React.
```bash
pnpm dev --port 5000
```

### Customer Interface
The Teller Interface provides functionality for tellers to manage their availability status, allowing them to switch between available and non-available states. This interface will be developed using React.
```bash
pnpm dev --port 3000
```

### Mobile App Interface
The Mobile App Interface is catered towards customers visiting the bank branch. Customers can utilize the mobile app to generate a ticket for the queue, allowing them to efficiently manage their time while waiting for service. This interface will be developed using React Native, ensuring compatibility across both iOS and Android devices.

## Backend
The backend of the queue management system will be developed using Java's Spring Boot framework. It will serve as the central component handling communication between the interfaces and managing the underlying data and business logic. The backend will be responsible for tasks such as processing queue requests, managing teller availability, and maintaining queue status updates.
```bash
./mvnw spring-boot:run
```

## Setup Instructions
1. Clone the repository to your local machine.
2. Navigate to the respective directories for each interface and backend.
3. Follow the setup instructions provided in each directory's README file to configure and run the application.

## Contributors
- [Nejra Adilovic](https://github.com/nejradilovic)
- [Emir Agovic](https://github.com/eagovic1)
- [Eldar Babic](https://github.com/ebabic1)
- [Edna Basic](https://github.com/Edna1010)
- [Ali Boudellaa](https://github.com/boudellaa)
- [Emina Efendic](https://github.com/efendicemina)
- [Lejla Heleg](https://github.com/lheleg)
- [Amina Hromic](https://github.com/Ahromic1)
- [Aldin Islamagic](https://github.com/aislamagic1)
- [Benjamin Kadic](https://github.com/BenjaminKadic)
- [Emir Kapic](https://github.com/EmirKapic)
- [Ahmed Ljubuncic](https://github.com/aljubuncic)
- [Vedran Mujic](https://github.com/vmujic1)
- [Amar Tahirovic](https://github.com/amarderschrecklicher)
