Skip to content

Latest commit

 

History

History
59 lines (37 loc) · 1.66 KB

README.md

File metadata and controls

59 lines (37 loc) · 1.66 KB

Polls API

User polls for gathering live responses on various topic.

Why polls application was created?

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.

Steps to Setup the Spring Boot Backend API

  1. Clone the application

    git clone https://github.com/bharat-rajani/Polls-REST-API.git
  2. Create MySQL database

    create database polls_db
  3. Change MySQL username and password as per your MySQL installation

    • open src/main/resources/application.properties file.

    • change spring.datasource.username and spring.datasource.password properties as per your mysql installation

  4. 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
  5. 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.