This project is an experimental workspace used for the Scientific and Chemical Engineering. This is an end to end implementation of SEAGrid Data Catalog, embedded with the new features and advanced data visualization techniques.
DEVELOPMENT GOALS
Function | Language/Framework/Technology used |
---|---|
Backend Microservice Implementation | 1. Spring Boot (Java) (Suggested tool IntelliJ) |
Frontend Microservice Implementation | 1. Django (Python) 2. Vue JS (Suggested tool PyCharm) |
Inter-service Communication | 1. Google Remote Procedure Calls (gRPC) 2. REST framework |
Database Management | MongoDB (Mongo Compass) |
Performance Testing | BloomRPC (for gRPC routing) |
Suggestion: For the effective workspace management, use IntelliJ and PyCharm.
Working on Mac Environment:
cd ~/
to move to the home directory.git init git clone https://github.com/bhavesh-asana/airavata-sandbox.git
On the server side, Spring Boot with the Maven configuration is being used to interact with the database and define the proto schema. To start the communication services the Google Remote Procedure Call (gRPC) stub is implemented in Java, which acts as a server and helps to transfer the data effectively with the connected clients across the distributed systems.
mongo --port 27017This command ensure the Mongo instance is running locally and connected the instance to the port 27017.
cd ~/airavata-sandbox/gsoc2022/smilesdb/Server/
mvn package mvn clean install
mvn spring-boot:runOn successful running of the server application, it shows a message as “Server running successfully” and open connection with mongodb driver.
Open a new terminal window and follow the steps to run the middleware application.
cd ~/airavata-sandbox/gsoc2022/smilesdb/DjangoMiddleware
$ conda create -n <EnvironmentName> python=3.8.3 $ conda activate <EnvironmentName>
pip install -U pip pip install -r requirements
python manage.py runserver
The front-end client application is developed in the JavaScript framework (vue.js). The vue.js is communicated with the Django application (Middleware) using REST api calls and the data is exchanged in between the server and client application.
To run the client application, open a new terminal window and follow the below steps
cd ~/airavata-sandbox/gsoc2022/smilesdb/smiles_dashboard
npm install
npm run serve
The mongo instances are configured in the application.properties file (located under Server/src/main/resources/). Initialise the mongo compass and connect to the respective port (27017). On execution of the ServerApplication, the smiles database is created and the test data of calcinfo is sent to the database, which can be viewed under the calcInfo collection.
To view the data using Mongo shell, open the terminal and follow the commands mentioned below.
mongo show dbs use smiles show collections db.calcInfo.find()