|
1 |
| -#### Project Status |
| 1 | +<h1 align="center">Highradius Dashboard 🖥️</h1> |
| 2 | + |
| 3 | +*This project is built with React18 support which means it has bleeding edge support of the latest web framework. **To get started in clicks, follow the <a href="#docker-deployment">docker deployment guide</a> below.*** |
| 4 | + |
| 5 | + |
| 6 | + |
| 7 | +> [Screenshots](Screenshots) |
| 8 | +
|
| 9 | +--- |
| 10 | + |
| 11 | +<h2>Project Status</h2> |
2 | 12 |
|
3 | 13 | [](https://github.com/nooobcoder/HighRadiusTraining/actions/workflows/build_release.yaml)
|
4 | 14 |
|
| 15 | +--- |
| 16 | + |
| 17 | +<h2>Technology Stacks Used</h2> |
| 18 | + |
| 19 | +### 1. Backend |
| 20 | + |
| 21 | +- [MySQL](https://dev.mysql.com/doc/) (Database) |
| 22 | +- [JDBC](https://mvnrepository.com/artifact/mysql/mysql-connector-java) w/ [Servlets](https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api) (Java to Database Connectivity/API/ORM) |
| 23 | +- [Maven](https://maven.apache.org/) (Dependency Management) |
| 24 | +- [Tomcat 10](https://tomcat.apache.org/download-10.cgi) (Server for Servlets) |
| 25 | +- [Python3](https://www.python.org/) |
| 26 | +- [Flask](https://flask.palletsprojects.com/en/2.1.x/) (Server for Machine Learning Model) |
| 27 | + |
| 28 | +### 2. Frontend |
| 29 | + |
| 30 | +- [React 18 ⚛️](https://reactjs.org/) (Frontend) |
| 31 | +- [NodeJS](https://nodejs.org/en/) (Server) |
| 32 | +- [Axios](https://axios-http.com/docs/intro) (API Communicator) |
| 33 | +- [Redux Toolkit](https://redux-toolkit.js.org/) w/ Redux thunk |
| 34 | + |
| 35 | +### 3. CI/CD 🛠️ and Orchestration 📦 |
| 36 | + |
| 37 | +- [Docker](https://www.docker.com/) 🐳 (w/ Dockerfiles and docker-compose) |
| 38 | + |
| 39 | + - [Dockerfile](https://docs.docker.com/engine/reference/builder/) |
| 40 | + - [docker-compose](https://docs.docker.com/compose/) |
| 41 | + |
| 42 | +- [Github Actions](https://github.com/features/actions) |
| 43 | + |
| 44 | +--- |
| 45 | + |
| 46 | +<h2> Getting Started </h2> |
| 47 | + |
| 48 | +<h3> Easy Deployment </h3> |
| 49 | + |
| 50 | +<h4 id="docker-deployment"><a> Backend Deployment using Docker</a> </h4> |
| 51 | + |
| 52 | +1. Please visit the <a href="Track%204_ReactJS_Web%20Development/Project/Docker/" target="_blank">Docker folder</a> to have a glance at the setup files |
| 53 | + |
| 54 | +You would get a similar folder structure as shown in the image below. |
| 55 | + |
| 56 | + |
| 57 | +Now take a look at the `docker-compose.yaml` file, that would expose us to the services that would be references while running the backend using Docker. |
| 58 | + |
| 59 | +```yaml |
| 60 | +version: "3" |
| 61 | + |
| 62 | +services: |
| 63 | + highradiustraining-servlet: |
| 64 | + container_name: highradiustraining-servlet |
| 65 | + deploy: |
| 66 | + replicas: 1 |
| 67 | + restart_policy: |
| 68 | + condition: unless-stopped |
| 69 | + ports: |
| 70 | + - "280:8080" |
| 71 | + image: ankurpaul19/highradiustraining-servlet |
| 72 | + highradiustraining-flask: |
| 73 | + container_name: highradiustraining-flask |
| 74 | + deploy: |
| 75 | + replicas: 1 |
| 76 | + restart_policy: |
| 77 | + condition: unless-stopped |
| 78 | + ports: |
| 79 | + - "5000:5000" |
| 80 | + image: ankurpaul19/highradiustraining-flask |
| 81 | + |
| 82 | + db: |
| 83 | + image: mysql:5.7 |
| 84 | + command: --default-authentication-plugin=mysql_native_password |
| 85 | + volumes: |
| 86 | + - /var/lib/mysql:/var/lib/mysql |
| 87 | + restart: always |
| 88 | + environment: |
| 89 | + - MYSQL_ROOT_PASSWORD=mysql |
| 90 | + - MYSQL_DATABASE=grey_goose |
| 91 | + - MYSQL_USER=mysql |
| 92 | + - MYSQL_PASSWORD=mysql |
| 93 | + ports: |
| 94 | + - "3306:3306" |
| 95 | + |
| 96 | + db_seeder: |
| 97 | + image: mysql:latest |
| 98 | + volumes: |
| 99 | + - ./Database/db.sql:/db.sql |
| 100 | + environment: |
| 101 | + - MYSQL_ALLOW_EMPTY_PASSWORD=true |
| 102 | + entrypoint: |
| 103 | + [ |
| 104 | + "bash", |
| 105 | + "-c", |
| 106 | + "sleep 10 && mysql --user=mysql --password=mysql --host=db --port=3306 grey_goose < /db.sql && exit", |
| 107 | + ] |
| 108 | + depends_on: |
| 109 | + - db |
| 110 | + |
| 111 | + phpmyadmin: |
| 112 | + image: phpmyadmin:latest |
| 113 | + restart: unless-stopped |
| 114 | + ports: |
| 115 | + - 8080:80 |
| 116 | + environment: |
| 117 | + # we specify that we connect to an arbitrary server with the flag below |
| 118 | + # "arbitrary" means you're able to specify which database server to use on login page of phpmyadmin |
| 119 | + - PMA_ARBITRARY=1 |
| 120 | + depends_on: |
| 121 | + - db_seeder |
| 122 | +``` |
| 123 | +
|
| 124 | +We can see that it uses these services for the backend to be running. |
| 125 | +
|
| 126 | +1. highradiustraining-servlet (Tomcat server for servlets) |
| 127 | +2. highradiustraining-flask (Flask service for AI predictions in the dashboard) |
| 128 | +3. db (MySQL Container) |
| 129 | +4. db_seeder (Seeder service for initial setup of the database) |
| 130 | +5. phpmyadmin (Database monitoring) ***(optional, remove if not needed)*** |
| 131 | +
|
| 132 | +**Before you can use the `docker-compose.yaml` file readily, you need to build the images first. Please visit the `Docker` folder and execute the below scripts to build the images.** |
| 133 | + |
| 134 | +```sh |
| 135 | + docker build -t ankurpaul19/highradiustraining-servlet -f Dockerfile-servlet.dockerfile . |
| 136 | + |
| 137 | + docker build -t ankurpaul19/highradiustraining-flask -f Dockerfile-flask.dockerfile . |
| 138 | +``` |
| 139 | + |
| 140 | +Once the images are built, you can **start the containers** from the docker-compose.yaml file by, |
| 141 | + |
| 142 | +`docker-compose up` *(-d to detach from the console and keep running in the background)* |
| 143 | + |
| 144 | + |
| 145 | +<h4 id="frontend-deployment"><a> Frontend Deployment </a></h4> |
| 146 | + |
| 147 | +1. Navigate to the <a href="Track%204_ReactJS_Web%20Development/Project/Frontend/hrc-dashboard" target="_blank">Frontend folder</a>. |
| 148 | + |
| 149 | +2. Install the dependencies for the web project using your preferred package manager (<a href="https://yarnpkg.com/" target="_blank">yarn</a> / <a href="https://www.npmjs.com/" target="_blank">npm</a>) |
| 150 | + |
| 151 | + > `yarn install` or `npm install` |
| 152 | + >  |
| 153 | + |
| 154 | +3. Perform a build of the project. Please make modifications to the `.env` file by copying the default variables from [`.env.example`](Track%204_ReactJS_Web%20Development/Project/Frontend/hrc-dashboard/.env.example) file. |
| 155 | + |
| 156 | + **Build the Project or download the build from <a href="https://github.com/nooobcoder/HighRadiusTraining/releases" target="_blank">releases</a>.** |
| 157 | + |
| 158 | + > `yarn build` or `npm run build` |
| 159 | + |
| 160 | + > The build time shall be around ~3 minutes ⌚ depending upon your pc specs. |
| 161 | + |
| 162 | +--- |
| 163 | + |
5 | 164 | ## HighRadius Training Details
|
6 | 165 |
|
7 |
| -Dear Student, |
| 166 | +<p>Dear Student, |
8 | 167 |
|
9 | 168 | Finally the wait is over! The day has come when we are about to start with the internship program. So, brace yourselves for the upcoming roller coaster ride. The starting date for the Internship is **27-Jan 2022**. The tenure for the Internship will be of 11 weeks wherein you'll be responsible to build an **AI Enabled Fintech B2B Invoice Management Application.**.
|
10 | 169 |
|
11 |
| -Please read the [PRS Document]("./PRS.pdf") |
| 170 | +</p> |
| 171 | + |
| 172 | +> Please read the [PRS Document](PRS.pdf) to get in-depth knowledge about the project. |
12 | 173 |
|
13 | 174 | Hope you have a pleasant journey ahead!
|
14 | 175 |
|
15 | 176 | Regards,
|
16 | 177 | **HighRadius Corporation**
|
| 178 | + |
| 179 | + |
0 commit comments