The aim of the project is to allow users to upload the data in form of files(csv,data table, google sheets, etc.) to BETYdb Postgres. It is to be done by creating an interface which will provide logical workflow to guide the user through the process of uploading to BETYdb.All related code can be found to below repository.
Link to the repository: https://github.com/PecanProject/BETYdb-YABA
Features implemented:
- Swagger documentation of YABA api
- Flask api with endpoints for diffferent tables of bety.
- Flask application client library to YABA
- Unit tests of both api and client
- Docker implementation
- Travis CI implementation
The tool is a Flask application that has both api and client:
- app - is the main folder that contains the YABA api code
- yaba_test - contains all the test files for api endpoints
- client - contains code for YABA client.
- input_files - all sample files are stored
- .travis - travis CI implementation configuration file.
The app is minimalistic since the main objective is to do bulk upload and will be integrated in bigger environments.
Contains the main module of the Server file.
- adds the swagger documentation of YABA
- routes to endpoints
Swagger documentation of YABA api.
Link: https://app.swaggerhub.com/apis-docs/y51/bet-ydb_yaba/1.0.5
Contains code implementation of the endpoints.
Contains the code for database configuration for YABA api.
Contains the code for client to YABA api.
UI Interface for YABA have not yet been completely implemented. Addition of basic pages have been pushed but might need modification in future for proper display.
GSoC was a huge learning experience for me. Now I feel more comfortable with the application development process.While developing this application, i got extensive exposure in Docker based application development.I am now lot more comfortable in developing Swagger documentation,travis deployment and Git for version control.PEcAn project is being developed with wonderful vision and i am quite lucky to be part of it.
I am thankful to my mentors David LeBauer and Kristina Riemer who provided expertise that greatly assisted in the development of this application.
Kumar Saurabh - (https://github.com/saurabh1969)
PecanProject is licensed under the BSD 3-Clause license.