https://github.com/theemperorofdaiviet/taco-cloud
The Taco Cloud project from the famous book - "Spring in Action".
https://github.com/theemperorofdaiviet/taco-cloud
java microsoft-sql-server-2019 spring-boot spring-data-jpa spring-jdbc-template spring-mvc spring-security thymeleaf
Last synced: 2 months ago
JSON representation
The Taco Cloud project from the famous book - "Spring in Action".
- Host: GitHub
- URL: https://github.com/theemperorofdaiviet/taco-cloud
- Owner: theEmperorofDaiViet
- Created: 2022-11-20T12:51:32.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2023-01-25T11:28:50.000Z (over 3 years ago)
- Last Synced: 2025-06-15T11:08:44.081Z (about 1 year ago)
- Topics: java, microsoft-sql-server-2019, spring-boot, spring-data-jpa, spring-jdbc-template, spring-mvc, spring-security, thymeleaf
- Language: Java
- Homepage:
- Size: 14.6 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Table of Contents
# About The Project
The Taco Cloud project from the famous book - "Spring in Action".
## Built With
* [![Java][Java-shield]][Java-url]
* [![Spring][Spring-shield]][Spring-url]
* [![Apache Maven][Apache Maven-shield]][Apache Maven-url]
* [![Apache Tomcat][Apache Tomcat-shield]][Apache Tomcat-url]
* [![HTML5][HTML5-shield]][HTML5-url]
* [![CSS3][CSS3-shield]][CSS3-url]
* [![Thymeleaf][Thymeleaf-shield]][Thymeleaf-url]
* [![Microsoft SQL Server][MicrosoftSQLServer-shield]][MicrosoftSQLServer-url]
# Getting Started
## Prerequisites
Before cloning and using this application, you'll need to install these things on your computer:
* [Java SE Development Kit 17](https://www.oracle.com/java/technologies/downloads/#java17): Of course you need to have Java installed to run a Java application. I used Java 17, but I think it works fine with the widely-used Java 8 (JDK 1.8), as well.
* [Spring Tool Suite 4](https://spring.io/tools): an Eclipse-based IDE to develop Spring applications.
It provides a ready-to-use environment to implement, run, deploy, and debug the application.
It validates your application and provides quick fixes for the applications.
* [Microsoft SQL Server 2019](https://www.microsoft.com/en-us/sql-server/sql-server-2019): a relational database management system developed by Microsoft.
As a database server, it is a software product with the primary function of storing and retrieving data as requested by other software applications -
which may run either on the same computer or on another computer across a network (including the Internet).
## Installation
You can install this application by cloning this repository into your current working directory:
```sh
git clone https://github.com/theEmperorofDaiViet/taco-cloud.git
```
After cloning the repository, you can open the project by Spring Tool Suite.
Open the application.properties file in [/src/main/resources](/src/main/resources) to change the information about the datasource to fit your own settings.
Open SQL Server and create a database according to the script in SQLServer.sql file in [/src/main/resources](/src/main/resources).
Finally, back to Spring Tool Suite and run the application.
# Key Features
This project covers the features from chapter 1 to 5 of "Spring in Action":
- Traditional multipage application (MPA) with Spring MVC
- Design custom tacos by selecting ingredients
- Place an order for the tacos you designed
- Validate form input and display validation errors
- See your order history
+ Spring Data: store information about ingredients, tacos, orders in Microsoft SQL Server database with:
+ JDBC (in previous version)
+ JPA
- Spring Security:
- Custom user storage:
- In-memory user store (in previous version)
- JDBC-based user store (in previous version)
- LDAP-backed user store (in previous version)
- Custom user details service
- Log in/ Log out
- Register new account
- Secure against CSRF attacks
# Usage
Here is an example to illustrate the features of this application
* First, I log in to an existing account. I design two tacos and place an order for them.
While entering information, I intend to provide data in the wrong format to illustrate data validation.
Finally, I check order history to see my previous orders, including the order I've just placed.
* Second, I log out and create a new account. I log in that new account and do the same things as above.
# Contact
You can contact me via:
* [![GitHub][GitHub-shield]][GitHub-url]
* [![LinkedIn][LinkedIn-shield]][LinkedIn-url]
* ![Gmail][Gmail-shield]: Khiet.To.05012001@gmail.com
* [![Facebook][Facebook-shield]][Facebook-url]
* [![Twitter][Twitter-shield]][Twitter-url]
[Java-shield]: https://img.shields.io/badge/Java-ED8B00?style=for-the-badge&logo=java&logoColor=white
[Java-url]: https://www.java.com/
[Spring-shield]: https://img.shields.io/badge/spring-%236DB33F.svg?style=for-the-badge&logo=spring&logoColor=white
[Spring-url]: https://spring.io/
[Apache Maven-shield]: https://img.shields.io/badge/Apache%20Maven-C71A36?style=for-the-badge&logo=Apache%20Maven&logoColor=white
[Apache Maven-url]: https://maven.apache.org/
[Apache Tomcat-shield]: https://img.shields.io/badge/apache%20tomcat-%23F8DC75.svg?style=for-the-badge&logo=apache-tomcat&logoColor=black
[Apache Tomcat-url]: https://tomcat.apache.org/
[HTML5-shield]: https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white
[HTML5-url]: https://www.w3.org/html/
[CSS3-shield]: https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white
[CSS3-url]: https://www.w3.org/Style/CSS/
[Thymeleaf-shield]: https://img.shields.io/badge/Thymeleaf-%23005C0F.svg?style=for-the-badge&logo=Thymeleaf&logoColor=white
[Thymeleaf-url]: https://www.thymeleaf.org/
[MicrosoftSQLServer-shield]: https://img.shields.io/badge/Microsoft%20SQL%20Sever-CC2927?style=for-the-badge&logo=microsoft%20sql%20server&logoColor=white
[MicrosoftSQLServer-url]: https://www.microsoft.com/en-us/sql-server
[GitHub-shield]: https://img.shields.io/badge/github-%23121011.svg?style=for-the-badge&logo=github&logoColor=white
[GitHub-url]: https://github.com/theEmperorofDaiViet
[LinkedIn-shield]: https://img.shields.io/badge/linkedin-%230077B5.svg?style=for-the-badge&logo=linkedin&logoColor=white
[LinkedIn-url]: https://www.linkedin.com/in/khiet-to/
[Gmail-shield]: https://img.shields.io/badge/Gmail-D14836?style=for-the-badge&logo=gmail&logoColor=white
[Facebook-shield]: https://img.shields.io/badge/Facebook-%231877F2.svg?style=for-the-badge&logo=Facebook&logoColor=white
[Facebook-url]: https://www.facebook.com/Khiet.To.Official/
[Twitter-shield]: https://img.shields.io/badge/Twitter-%231DA1F2.svg?style=for-the-badge&logo=Twitter&logoColor=white
[Twitter-url]: https://twitter.com/KhietTo