Skip to content

Assignment 2

Pulkit Mathur edited this page Mar 3, 2019 · 20 revisions

Assignment 2

Project Description: A portal to showcase projects/work using posts and people can seek advice or help from experts in the corresponding fields. Connect with the best. This portal can also be used as a project portfolio. Showcase your portfolio and get hired.

Napkin Diagram

Napkin Diagram

Architecture

Architecture Diagram

Main Goals

  • Implement continuous integration and deployment (CI/CD)
  • Deploy all on JetStream Virtual Machines
  • Service Registration and Discovery
  • Functionality Improvement

Tasks Done

  • Implemented the service registration discovery feature using Consul.
  • Developed pipelines in Jenkins for continuous integration and deployment (CI/CD)

Continuous Integration and Delivery (CI/CD)

  • Steps to test our CI/CD:
    • Login to our Jenkins
    • Goto "buildAndDeployAll" project and click Build Now in the left pane
    • Once the build is completed the application goes live at ProjectHub
  • Build History Jenkins Build History
  • Fetch Service
    • This service was developed using Spring Boot and Maven
    • It is running on jetstream at Fetch
    • Integration: A pipeline project was created in Jenkins which used to build the application every time a commit is made on GitHub. A jenkins file was configured in such a way that it build the entire project first and on successful build, it called another project to build as the last stage of pipeline.
    • Deployment: A freestyle Jenkins project was created which was triggered when integration was successfully completed (previous step). This project published the contents of last successful build over ssh. It then builds the maven project again. The last step was to check if the JAR is already running. It was running, commands are run over ssh to kill the corresponding process and then run the new JAR else directly run the JAR.
  • As soon as any changes are pushed to a microservice branch in Github, it's associated pipeline is triggered in Jenkins where it is build and tested on the dev instance and deployed to the microservice's production instance.
  • Frontend
    • This service was developed using ReactJS and Redux.
    • This service is running at Frontend
  • Login Service
    • This service was developed using NodeJS.
    • This service is running at Login
  • Upload Service
    • This service was developed using GoLang.
    • This service is running at Upload

Service Registration and Discovery

Application Access/Testing

  • To access the application, go to Main Page
  • Features to validate:
    • Any user should be able to sign up or login if the user already has an account.
    • Once the user has logged in, the user should be able to create a post either using text or by selecting an image from local system or both. After this the user should also select the tag from the drop down menu.
    • The user won't be allowed to create a post when both text and image are missing.
    • After this step, the user should be able to see posts from other people (Project Feed).
Clone this wiki locally