Skip to content

A polling application REST API for gathering live responses on various topic from users.

License

Notifications You must be signed in to change notification settings

bharat-rajani/Polls-REST-API

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

A polling application REST API for gathering live responses on various topic from users.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages