Skip to content

Objective: to implement a task manager application. It must contain the following components: metrics collection, database storage, and a user interface.

Notifications You must be signed in to change notification settings

vivekVells/TaskProcessManager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

84 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

View all of my Projectworks - click over here -> Vivek Vellaiyappan Project Works

Task Process Monitor / ProcessOnitor / ProcesSanager

Objective

  • To implement the classic task manager application. It must contain the following components: metrics collection, database storage, and a user interface.

Coursework Information

  • Capstone Project: MSCS 710L | Duration: Fall 2018 (Aug to Dec 2018)
  • Degree: Masters in Computer Science - Software Development | College: Marist College, NY
  • Professor: Anthony Giorgio

Team Info & Roles Executed for this project

Name Roles Shared Roles
Vivek Vellaiyappan Scrum Master, Manager, Software Engineer, Web Developer, DevOps Engineer Architect, Technical Writer
Deeksha Testing Engineer, Automation Engineer Architect, Technical Writer
Neha Testing Engineer, Automation Engineer Architect, Technical Writer

Tech Stack

  • Java, Sigar API (to get system level info), Spring Boot, Spring, Spring MVC, Spring Rest Controller, Spring Data JPA, Hibernate, Spring Scheduler, H2 - Database, Junit, HTML, CSS, JavaScript, jQuery, Bootstrap, Github, CI/CD pipeline - Semaphore, Docker, Maven, Swagger, Webjarjs, Log4j, Postman (API testing & actions)

Project Highlights

SDLC Process Agile Architectural Decisions GitHub Maven
CI:Semaphore CD: Docker container Deployment: Heroku (in Progress) REST API endpoints Swagger API documentation

Future Plans/Enhancements

Cloud Deployment - Scaling up & delivery of this web Application to everyone by using Cloud CSPs Exploring Microservices architecture for this application Developer Portal Website to expose the application API to external developers
Code Development Practice Related - Hot Deploy concept in concept tryout - Issues creation & assigning gently automatically when buildfails Using Frontend Framework Implementing Adobe Analytics or such data analysis over application
  • Modularize the database by using normalization & bridge pattern concepts
  • refactor the endpoint controllers location

Quick Links:

File (links) Description
Work Log contains log about work done towards the project
Meeting Log contails log about meeting sync up info
Design Document document explaining the design approach for this project
Test Approach Docuemnt document explaining the test approach for this project
Task Process Monitor - Final Demo PPT Final Demo Presentation File

Note: Will be updating this read me document more about the instrutions to run this in your windows machine, few more demo info & few more info. Kindly refer Gifs, pdfs, & Screenshots mentioned below for now - Version 2.0.

Demo - Version 2.0 Project Images

Project Demo Presentation slides pdf - will be inserting few more slides. Link: Click Me

Total CPU Usage - value updation in real time - video Total CPU memory usage - The values gets updated in real time

Project Home page Project Home Page - verison & a single total cpu memory usage values Maven Build System - Build success Swagger UI view API Docs endopint response API endpoint - CPU Usage response API endpoint - Versions response ALL Endpoints Info Semaphore CI - Project Build Status

  • Tag on repo **Semaphore CI - Home Page ** Docerized Application

Project Working Demo (all demo files location: link)

Features

  • View System Level info (aimed as of now)
    • System memory statistics: total, free, shared
    • CPU statistics: load averages, user cpu, system cpu
    • Process level statistics: process arguments, memory consumption, cpu consumption, credential info, state, environment, open file descriptors
    • File system level statistics: local and remote mounted file systems (NTFS, ext, SMB, NFS, etc), capacity, utilization
    • Network interface level statistics: all available network interfaces detected and monitored for bytes received/transmitted, packets received/transmitted, collisions, errors, dropped packets
  • Monitor the processes in an intuitive way (Charts, Graphs)

Future Enhancements

  • Note: The version will be updated whenever necessary to include more enhancements (will update these later)

Note

  • Using SIGAR for educational purpose only. (disclaimer made to avoid licensing issues with SIGAR)

Instructions to run this project in your machine:

  • Used: IDE: IntelliJ | OS: Windows, Linux

To run the Web App (few recent changes made. will be updating this soon)

  • setup java & maven env in your local machine.
  • download project Refer the release branch with tag v1.0
  • run following command
    • mvn clean install
      • proceed only after you receive "BUILD SUCCESS" confirmation
    • java -jar target\process-monitor-0.0.1-SNAPSHOT.war
      • make sure you got something similar to this line in the log INFO 10672 --- [ main] c.t.p.p.ProcessMonitorApplication : Started ProcessMonitorApplication in 6.17 seconds (JVM running for 6.971)
      • Note: in the unzipped folder -> navigate to the pom.xml file such that you end up similar to this location ..\TaskProcessManager-master\version1\maven_use\eclipse_processmonitor_ver1\spring-boot\process-monitor
  • goto url http://localhost:8080/
    • verify whether you received this "Hello Spring Boot World! Will be deploying a Process Monitoring Application soon using you!!" in the web page

To run a pgm & retrieve low level system info

  • Eclipse IDE used for this project being downloaded eclipse from here - Eclipse IDE for Java EE Developers - 64 bit zip link: https://spring.io/tools3/eclipse
  • setup the java https://www.mkyong.com/java/how-to-set-java_home-on-windows-10/ and maven https://www.mkyong.com/maven/how-to-install-maven-in-windows/ dependencies in your system
  • clone this repo
  • open eclipse and open the proejct located in this location: .\TaskProcessManager\version1\maven_use\eclipse_processmonitor_ver1
  • add the sigar.jar file to the project "processmonitorver1" by going to its properties (right click on project -> Properties -> Java Build Path on left pane -> Libraries tab on right pane -> Add External JARs button and add the sigar.jar file in this location .\TaskProcessManager\prototype\hyperic-sigar-1.6.4\sigar-bin\lib\sigar.jar
  • optional: if eclipse shouts error stating "Project is missing required library: ", then remove that one by - navigating to project properties of "processmonitorver1" by going to its properties - right click on project -> Properties -> Java Build Path on left pane -> Libraries tab on right pane -> remove any unused or errored jar file

Application Screenshots So Far(wanna avoid scrolling a lot, use above pdf sheet)

Beware of the lots of scrolling to come :P

OLD Screenshots - Version 1.0

Ver 1.1 Screenshots accordingly

Collage - Screen: Welcome, Version Info, CPU Usage info, Utility Info

Welcome Screen

Version Info Screen - http://localhost:8080/version

version info Screen

Cpu Usage Screen - http://localhost:8080/cpu

Cpu Usage Screen

Utility Info Screen - http://localhost:8080/utility

Utility Screen

Swagger Meta Data for this Application - http://localhost:8080/v2/api-docs

Page Not Found Error Page - http://localhost:8080/404.html

Old versions screenshots below.

Version 1 - Web UI

Initial Setup

Version 1 - Verifying the system level info

System Related Information CPU Related Information