- 
                Notifications
    You must be signed in to change notification settings 
- Fork 3
agileWaterFail/springboot-bigquery-app
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
APPLICATION: springboot-bigquery-app
AUTHOR: David Giametta
DATE: Apr 5-8 2018
Build tool: Apache Maven 3.5.0
IDE: Intellij
DB: POSTGRES
    PORT: 5432
Note: Please reference the ApplicationRequirements.txt to see the requirements that drove development
of this application
Table of Contents:
1) To Run
2) Api and usage
3) Enhancements
4) Tests
5) Query Limit
1) To Run
    You must have a google cloud account with Big Query Api enabled
    Missing from the application are google certs you'll need - google cloud account
    credentials json file
    Update credentials.properties to point at your credentials json file and specify your project id
    Setup your own postgres db to run on PORT 5432 - update application.properties to match
    your credentials
    Intellij Configuration - reference the IntellijConfiguration.png to see my run config
2) Api and usage
    POST:
        http://localhost:8080/search/byYear/
            headers:
                Key: Content-Type
                Value: application/json
            body:
                example:
                {
                  "year" : "1967"
                }
    GET:
        http://localhost:8080/requestId/
            params:
                Key: requestId
                Value: UUID
    USAGE:
        Boot up the app and make sure its available from localhost:8080
        Using POSTMAN give the post endpoint a year and send then click the resulting url and send
3) Enhancements
    1) Stop passing around the entity and convert it to an internal model for use throughout the app using
    a ConversionService bean and a custom converter that trims unnecessary fields
    2) Add more tests following a proper BDD Pyramid
    3) Better Exception Handling in BigQueryService
    4) Learn more React and add a front end ui
    5) Modularize the search slice to accept map containing whatever table, and field they want.  Use service
    to determine if table/field exists and if so perform the search.  Also implement paging
4) Tests
    Testing is done using groovy spock tests and are made available for viewing after a maven build in
    /build/spock-reports/index.html
5) Query Limit
    Currently the query is limited to 10 - read code comments in BigQueryService.java
About
Example spring boot app leveraging google big query and downloading the results for later retrieval
Topics
Resources
Stars
Watchers
Forks
Releases
No releases published
              Packages 0
        No packages published