Software Requirements Specification
Software Requirements Specification
1.1 Purpose
This Software Requirements Specification (SRS) document defines the system requirements for the
Bar Management System mobile application. The system is designed to manage bar operations,
including sales, inventory, stock, and reporting. The application will be developed as a mobile app
with React Native for the frontend and C++ with Qt for the backend.
1.2 Scope
The Bar Management System will focus solely on bar operations (excluding restaurant management)
and will serve three main user roles: Admin, Manager, and Bartender. The system will handle
functions such as order management, inventory management, sales reporting, and user
authentication.
React Native: A framework for building mobile applications using JavaScript and React.
Qt: A framework for building cross-platform applications with C++, used for backend logic
and networking.
JWT (JSON Web Tokens): A method for securely transmitting information between frontend
and backend, particularly for user authentication.
PostgreSQL: A relational database management system (RDBMS) used for centralized data
storage.
2. Overall Description
Admin: Full access to all features, including user management, system configuration, and
report generation.
Manager: Limited access to system configuration and full control over stock, orders, and
reports.
Bartender: Can process orders, view product catalog, and register sales.
The backend is assumed to be deployed on a server that can handle a large number of
concurrent users, especially for real-time features like live sales tracking.
3. System Features
Admins can create, modify, and delete user accounts for Managers and Bartenders.
Users have roles that restrict their access to certain parts of the system.
Admin:
Manager:
Bartender:
Roles-based access control will restrict functionality based on the user’s role.
Admin, Manager, and Bartender will log in with email and password.
On successful login, a JWT token will be issued, which must be used for further requests.
Bartenders will take customer orders, which are then registered in the system.
Bartender:
Managers will add and update stock items, track stock levels, and get low-stock alerts.
Manager:
Bartender:
Managers and Admins can generate reports on sales, inventory, and staff performance.
Manager:
Admin:
The system must support efficient handling of sales and order calculations without
performance degradation.
Tables:
User Interface:
o The app will have a clean, user-friendly design with intuitive navigation.
o Each role (Admin, Manager, Bartender) will have different views tailored to their
tasks.
API Communication:
o The frontend will communicate with the C++ backend via RESTful APIs or
WebSockets (for real-time updates).
API Layer:
o Expose REST APIs for handling user authentication, order registration, sales data,
stock management, and reports.
Real-time Communication:
o WebSockets will be used for live updates on sales and stock levels.
Database Layer:
o The backend will interact with a PostgreSQL or SQLite database to store user data,
sales, and inventory.
5. Non-Functional Requirements
The backend (C++) should be able to handle at least 500 concurrent users with low latency.
Real-time updates (WebSocket) should be responsive, with updates appearing in less than 2
seconds.
5.3 Availability
5.4 Scalability
The system should be able to scale horizontally to handle increased load (more users, more
sales, etc.).
6. Appendix
Authentication: JWT