https://github.com/bharat-rajani/polls-rest-api
A polling application REST API for gathering live responses on various topic from users.
https://github.com/bharat-rajani/polls-rest-api
java polls-application rest-api spring-boot
Last synced: about 1 month ago
JSON representation
A polling application REST API for gathering live responses on various topic from users.
- Host: GitHub
- URL: https://github.com/bharat-rajani/polls-rest-api
- Owner: bharat-rajani
- License: mit
- Created: 2019-06-17T10:59:03.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2020-11-04T11:16:29.000Z (over 5 years ago)
- Last Synced: 2025-06-29T06:02:52.567Z (11 months ago)
- Topics: java, polls-application, rest-api, spring-boot
- Language: Java
- Size: 82 KB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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**
```bash
git clone https://github.com/bharat-rajani/Polls-REST-API.git
```
2. **Create MySQL database**
```bash
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 -
```bash
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 -
```bash
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 -
```sql
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.