Skip to content

gouravrc/solaris-app

Repository files navigation

Solaris - Solar panel Optimization and Loan Assessment based on Radiation, Illumination System

Maintained | Yes Ask me anything

About 🤷

An AI banking evaluation tool to assess loan for installation of Solar panels for domestic and commercial usage

Key Technolgies 🗝

  1. Front End - React JS / Typescript / Axios
  2. Back End - Java 17 / Springboot
  3. Cloud - Google Cloud Platform / Firebase / Firestore Database
  4. Machine Learning - Python / LinearRegression / StandardScaler / pickle

Project Structure and Setup ⛳

||_slr-python-solar-irradance-predictor - AI Model
||  |-global_heat_index.csv (dataset)
||  |-Solar_Radiation_model.ipynb
||
||_slr-react-frontend-app - UI Application
||  |-public
||  |-src
||  |-package.json
||  |-tsconfig.json
||
||_slr-sprint-backend-app - Rest API + GCP Cloud Configuration
||  |-src
||      |-main
||          |-resources
||              |-serviceAccount.json (GCP Cloud Configuration)
||  |-target
||  |-pom.xml

Installation 📥

Getting Started with Python

Install python and pip on your system. Click to setup

Then

  1. Fork/clone this repo
  2. If you are opening in vscode, then you need to install Jupyter lab. For installation click here
  3. On vscode terminal cd slr-python-solar-irradance-predictor
  4. Run jupyter lab
  5. The application will run on port 8888
  6. You can also run it in Google Colab
  7. Follow instructions in this link to run it on Google Colab

Getting Started with Create React App

If you dont have npx, please download from this link

Then

  1. Fork/clone this repo.
  2. cd slr-react-frontend-app
  3. npm install
  4. The local server will be up on 3000

Getting Started with Java Springboot

This Java application will required jdk 17 installed & maven. Please follow this link to download and setup jdk. To install maven click here

Then

  1. Fork/clone this repo and open in IntelliJ
  2. cd slr-spring-backend-app
  3. mvn clean install
  4. Click on debug or run icon
  5. On successfully build the spring application will run on port 8080

‼️ Disclaimer ‼️

The following information is provided for the purpose of sharing specific details relevant to this project. While every effort has been made to ensure the accuracy and completeness of the information, it is shared with the understanding that there may be omissions. Please see as below:

  1. Since, I am using GCP Firebase for cloud integration in my project, I have to create serviceAccount.json file from firebase console and consume it in our Java application. As this file contains extremely confidential infomation which contains private keys and account information. The information in the file is ommited from the slr-spring-backend-app/src/main/resources/serviceAccount.json. You can create your serviceAccount.json by following below steps

    a. Go to https://console.cloud.google.com/apis/credentials
    b. On the top left there is a blue "create credentials" button click it and select "service account key." (see below if its not there)
    c. Choose the service account you want, and select "JSON" as the key type
    d. It should allow give you a json to download
    e. Copy and paste in the following path slr-spring-backend-app/src/main/resources
    
  2. For simplicity, the Python model has not been deployed as a REST API. Initially, the plan was to deploy it using Flask and connect it with our Java REST API using RestTemplate. However, due to time constraints, the focus has been on building the prototype to demonstrate the application's real-time functionality and provide tangible outputs. Nevertheless, the model can still be run as a standalone application. We have mocked the python model response in

    slr-spring-backend-app/src/main/java/com/gouravrc/solaris/service/ApplicationOfficerService.java
    

    Line number 235. method getSolarPredictedValue() Click here to jump in

  3. I have mocked the location details and embeded inside Java application slr-spring-backend-app/src/main/resources/mock_weather.json Click here to jump in

  4. In order to run the application locally, you need to start springboot server first to run the API service in localhost:8080, then you npm run start the UI application.

Prototype Demo

Click here to watch demo

PRs Welcome

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published