BookHub is a Java web application that allows users to buy books online.Users of the system: visitors/browsers, registered customers, store clerks, store managers/super-users.
- The online store has a home page showing the lists of new books, best-selling books and most popular books.
- The system provides different categories for the books.
- A visitor can browse the listings of the books and discussion forums.
- A visitor can apply to be a registered customer with a unique working email address.
- A user can add the books to shopping cart.
- A user can purchase books.
- A user can see his/her orders.
- A registered customer must provide a working credit card or deposit money to the account for possible purchase.
- A registered customer can browse the system, and make purchase options.
- A user can search info, browse his/her own private purchasing history/expenses, comments and (start) votes on the items s/he purchased already.
- Incorporated Okta Authorization Server to facilitate user login and logout functionalities.
- Integrated Stripe payment gateway that allows users to make payments with debit/credit cards.
GIF created with LiceCap.
Describe any challenges encountered while building the app.
- User authentication and authorization.
- Connecting the Spring Boot backend with Angular frontend.
- Maintaining application security
- Deployment
The fully fledged server uses the following:
There are a number of third-party dependencies used in the project. Browse the Maven pom.xml
file for details of libraries and versions used.
For building and running the application we need:
There are several ways to run a Spring Boot application on the local machine. One way is to execute the main
method in the org.springframework.boot.SpringApplication
class from the IDE.
Alternatively we can use the Spring Boot Maven plugin like so:
Clone the project and use Maven to build the server
mvn clean install
mvn spring-boot:run
The easiest way to deploy the sample application to OpenShift is to use the OpenShift CLI:
oc new-app codecentric/springboot-maven3-centos~https://github.com/MinhazRahman/book-hub