Restaurant POS is the application replacing the use of paper for ordering system. It can be very useful to restaurants that currently lack uses of technology, and also improve efficiency and speed of transaction.
What things you need to install in the application.
- MySQL-Connector - Used for connecting to database.
- JBCrypt - Used for encrypting the password in database.
-
Download the whole folder containing runnable jar file.
-
Add these JAR files by following the steps below.
Open the project -> Build Path -> Configure Build Path.. -> Add External JARS..
Note: This application required an Internet Connection
There are 3 modes for user.
- Manager mode - Customize the menu and table and also remove the employee.
- Employee mode - Receive the order from customer and Check bill of each table.
- Customer mode - Order the dishes and display to the Employee view.
With security, every employee must sign up and login in work so we could classify which dish is ordered by who in case of responsibility needed. (all user, menu and table data are stored in database)
Manager mode or Employee mode is shown depending on user's access level.
Manager has more functions than Employee.
Edit Menu Function
Remove User Function
Manage Table Function
Order Foods and Drinks Function
Summary Function
Sign up for new employee.
Employee is able to access to the Table View. (Same as manager but less function)
Start Interface
User Interface
- application - Contains all the application classes including Main class.
- view - Contains all the FXML linked with Scene Builder.
- controller - Contains all the controllers of each application class
- database - Contains a class having methods to manage the database.
- model - Contains all the object classes of the application.
- util - Contains all the utility classes and interface.
There are some design and technology used.
- MVC Pattern (Model-View-Controller) - Used for separating application's concerns.
- Singleton Pattern - Used for encapsulating customer's orders and can be used in many classes.
- Observer Pattern - Used for displaying ordered items and observing changes in database.
Interface Map<K,V> - ( K - the type of keys maintained, V - the type of mapped values )
Concept: If you call a key, you get a value. But the value does not return the key.
Database is a storage of data, where user can access the data any time and any where using
Usability: Both Customer's and Manager's program can access the same data .
jBCrypt is a java used for hashing password. With high quality of algorithm, it prevents the hacker from hacking the password in the database. Users can use the method checkpw( your password, password in database) to check if the password matches or not.
Additional: Try using PreparedStatement with wildcard (?) for preventing SQL Injection
sqlCommand = "SELECT * FROM User WHERE name = ?";
PreparedStatement stmt = connection.prepareStatement(sqlCommand);
stmt.setString(1, user);
if (BCrypt.checkpw(yourPass, databasePass)) {
dowork();
}
stmt.executeQuery();
- Eclipse IDE - Constructor of codes.
- Scene Builder JavaFx - Constructor of javafx FXML project.
- Chrome MySQL Admin - Database for managing the data of this application.