This is a SpringBoot REST application using postgresSql
as DataBase and deployed to docker. Before making queries user need to authenticate using login
api where client will receive a token for Authorization header.
##Run the application
- Navigate to
/src/main/docker - Run
docker-compose up
##Reset the Docker container
- if this a new build
cp target/powerplant-0.0.1-SNAPSHOT.jar src/main/docker - Navigate to
/src/main/docker - Run
docker-compose down - Run
docker rmi docker-spring-boot-postgres:latest - Run
docker-compose up
- hosted on AWS ECS Ip:
35.87.134.100:8080
docker hosted on localhost:8080
- Type :
Post - Path :
/user/Signup - RequestBody :
{"user" : "name", "password": "password"}{
"user": "name",
"password": null,
"token": null
}- Type :
Get - Path :
/user/login - RequestBody :
{"user" : "name", "password": "password"}{
"user": "name",
"password": null,
"token": "Bearer Toke"
}- Type :
Get - Path :
/powerPlant/get - RequestBody :
{"powerPlantName":"7-Mile Ridge Wind Project"} {
"powerPlantName": "7-Mile Ridge Wind Project",
"location": "AK",
"year": 2019,
"generators": {
"generators": [
{
"generatorId": "WT1",
"generatorStatus": "CN",
"generatorPowerGeneration": 0
}
]
},
"powerOutPut": 0,
"powerOutputPercentage": 0.0
}- Type :
Get - Path :
/powerPlant/getAll
[
{
"powerPlantName": "7-Mile Ridge Wind Project",
"location": "AK",
"year": 2019,
"generators": {
"generators": [
{
"generatorId": "WT1",
"generatorStatus": "CN",
"generatorPowerGeneration": 0
}
]
},
"powerOutPut": 0,
"powerOutputPercentage": 0.0
}, {..},...
]- Type :
Get - Path :
/powerPlant/getByLocation - RequestBody :
{"location" : "AK","page" : 3 ,"size": 1} {
"location": "AK",
"plantsInLocation": 154,
"plantResponseList": {
"content": [
{
"powerPlantName": "Alakanuk",
"location": "AK",
"year": 2019,
"generators": {
"generators": [
{
"generatorId": "UNIT4",
"generatorStatus": "SB",
"generatorPowerGeneration": 14
},
{
"generatorId": "G309",
"generatorStatus": "CN",
"generatorPowerGeneration": 0
},
{
"generatorId": "UNIT1",
"generatorStatus": "RE",
"generatorPowerGeneration": 0
},
{
"generatorId": "UNIT2",
"generatorStatus": "RE",
"generatorPowerGeneration": 0
},
{
"generatorId": "UNIT3",
"generatorStatus": "RE",
"generatorPowerGeneration": 0
}
]
},
"powerOutPut": 14,
"powerOutputPercentage": 0.0
}
],
"pageable": {
"sort": {
"sorted": false,
"empty": true,
"unsorted": true
},
"pageNumber": 2,
"pageSize": 1,
"offset": 2,
"paged": true,
"unpaged": false
},
"last": false,
"totalElements": 154,
"totalPages": 154,
"first": false,
"sort": {
"sorted": false,
"empty": true,
"unsorted": true
},
"size": 1,
"number": 2,
"numberOfElements": 1,
"empty": false
}
}Display top N and bottom N plants in either descending or ascending order by total generation output
- Type :
Get - Path :
/powerPlant/getNSorted orderhas two valuesascanddesc- RequestBody :
{
"limit" : 1,
"provideHighResults" : true ,
"provideLowResults": true,
"order" : "asc",
} {
"highOutputPlants": [
{
"powerPlantName": "Palo Verde",
"location": "AZ",
"year": 2019,
"generators": {
"generators": [
{
"generatorId": "1",
"generatorStatus": "OP",
"generatorPowerGeneration": 10640123
},
{
"generatorId": "2",
"generatorStatus": "OP",
"generatorPowerGeneration": 10640123
},
{
"generatorId": "3",
"generatorStatus": "OP",
"generatorPowerGeneration": 10640123
}
]
},
"powerOutPut": 31920369,
"powerOutputPercentage": 0.0
}
],
"lowOutputPlants": [
{
"powerPlantName": "7-Mile Ridge Wind Project",
"location": "AK",
"year": 2019,
"generators": {
"generators": [
{
"generatorId": "WT1",
"generatorStatus": "CN",
"generatorPowerGeneration": 0
}
]
},
"powerOutPut": 0,
"powerOutputPercentage": 0.0
}
]
}- Type :
Get - Path :
/powerPlant/getPowerOutPutByLocation - RequestBody :
{
"getForAllRegions" :false,
"regions" : ["PR","CA"]
} [
{
"region": "PR",
"regionOutput": 18171884,
"powerPlants": [
{
"powerPlantName": "AES ILUMINA",
"location": "PR",
"year": 2019,
"powerOutPut": 37967,
"powerOutputPercentage": 0.20893265
},
{
"powerPlantName": "AES Puerto Rico",
"location": "PR",
"year": 2019,
"powerOutPut": 3532312,
"powerOutputPercentage": 19.438337
},
.
.
- Type :
POST - Path :
/powerPlant/save - RequestBody :
{
"powerPlantName": "7-Mile Ridge Wind Project",
"location": "AK",
"year": "2019",
"generators": {
"generators": [
{
"generatorId": "WT1",
"generatorStatus": "CN",
"generatorPowerGeneration": 0
}
]
}
}
- When the Object is new
{
"powerPlantName": "7-Mile Ridge Wind Project",
"location": "AK",
"year": "2019",
"generators": {
"generators": [
{
"generatorId": "WT1",
"generatorStatus": "CN",
"generatorPowerGeneration": 0
}
]
}
}- If object already exist year could be updated and new Generators will be added if the new Object have Generators
{
"powerPlantName": "7-Mile Ridge Wind Project",
"location": "AK",
"year": "2019",
"generators": {
"generators": [
"Previous GeneratorList +",
{
"generatorId": "WT1",
"generatorStatus": "CN",
"generatorPowerGeneration": 0
}
]
}
}- Type :
POST - Path :
/powerPlant/batchSave - RequestBody :
{
"powerPlants": [
{
"powerPlantName": "7-Mile Ridge Wind Project",
"location": "AK",
"year": "2019",
"generators": {
"generators": [
{
"generatorId": "WT1",
"generatorStatus": "CN",
"generatorPowerGeneration": 0
}
]
}
},
"list of power plants"
]
}[
{
"powerPlantName": "7-Mile Ridge Wind Project",
"location": "AK",
"year": "2019",
"generators": {
"generators": [
{
"generatorId": "WT1",
"generatorStatus": "CN",
"generatorPowerGeneration": 0
}
]
}
},"list of created power plants"
]