User polls for gathering live responses on various topic.
This application is created to:
- Serve the objective of learning and building REST API with Java and Spring Boot.
- Understand and employ TDD and SOLID principles.
- Develop quality API by keeping OWASP REST Api Security Principles in mind.
-
Clone the application
git clone https://github.com/bharat-rajani/Polls-REST-API.git
-
Create MySQL database
create database polls_db
-
Change MySQL username and password as per your MySQL installation
-
open
src/main/resources/application.properties
file. -
change
spring.datasource.username
andspring.datasource.password
properties as per your mysql installation
-
-
Run the app
You can run the spring boot app by typing the following command -
mvn spring-boot:run
The server will start on port 8080.
You can also package the application in the form of a
jar
file and then run it like so -mvn package java -jar target/polls-0.0.1-SNAPSHOT.jar
-
Default Roles
The spring boot app uses role based authorization powered by spring security. To add the default roles in the database, I have added the following sql queries in
src/main/resources/data.sql
file. Spring boot will automatically execute this script on startup -INSERT IGNORE INTO roles(name) VALUES('ROLE_USER'); INSERT IGNORE INTO roles(name) VALUES('ROLE_ADMIN');
Any new user who signs up to the app is assigned the
ROLE_USER
by default.