Skip to content

Scrapbook is a micro-service architecture based application that enables users to upload and manage images.

Notifications You must be signed in to change notification settings

airavata-courses/scrapbook

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

banner

Scrapbook is a micro-service architecture based application that enables users to upload and manage images. It empowers the users to securely share images by introducing various roles. The users also have access to an intuitive dashboard to view different metrics and monitor various activities. Scrapbook aims to introduce simplicity in photo management.

πŸ’‘ Staging Demo

banner


πŸ“¦ Technology Stack

  • Angular 11 (TypeScript)
  • SpringBoot (Java 15)
  • Flask (Python)
  • MongoDB Atlas
  • Redis Cloud
  • Google Cloud Storage
  • Apache Kafka
  • RESTful Webservices
  • Docker
  • Jenkins
  • Kubernetes
  • Terraform
  • Ansible
  • Jmeter

🏰 System Architecture

architecture

πŸ‘¨β€πŸ’» System Workflow

workflow

πŸš€ Application Deployment

To create VMs and configure kubernetes on the VMs follow zonca's blog. Once you have the VMs set up, follow the steps below to deploy scrapbook on the cloud.

# SSH into the master node of the Kubernetes cluster
$ sudo su
$ git clone https://github.com/airavata-courses/scrapbook.git
$ cd scrapbook
$ chmod +x deploy.sh
$ ./deploy.sh

Trigger a Production build

Make a push to the main branch and Jenkins will automatically deploy the whole application

Trigger a Staging build

Make a push to the develop branch and Jenkins will automatically deploy the whole application

🧱 Project Installation (Local)

Dependencies

Make sure you have these dependencies installed in your machine before installing each service.

  • Node/NPM
  • Python3.8
  • Java 15
  • MongoDB
  • Redis
  • Angular CLI
  • Maven
  • Docker

Repository

$ git clone https://github.com/airavata-courses/scrapbook.git
$ cd scrapbook

Local Installation

Manual

Follow the guide in our wiki here to locally install scrapbook (all services).

Docker

# in the scrapbook root directory
$ git checkout docker
$ docker-compose up

Navigate to http://localhost:4200/

🎨 Performance

These are the load testing results for a few features

results - load test

🎨 Mockups

Please visit our wiki page here to see our mockup designs.

πŸ“– Documentation

βœ… Project Milestones

πŸ’ͺ🏽 Team

  • Chirag Shankar Indi: Chirag is a first year Master's student studying at Indiana University Bloomington, majoring in Computer Science with a focus on AI/ML. He has full time experience as a Software Engineer working with the High Performance Computing and Technical Infrastructure team at Shell, along with multiple internships in fields of Software Development, Machine Learning, and Networking.

  • Hrishikesh Paul: Hrishikesh is a final year Masters student, studying Computer Science and specializing in Software/Frontend Engineering. His experience includes Full Stack Development using Angular, Vue, Node, Flask and MongoDB. Currently, he is the Lead Software Engineer at CNS, working with the NIH to build scalable and open source visualization tools for researchers and doctors.

  • Jyoti Bhushan: Jyoti is a graduate student pursuing Master from Indiana University Bloomington, majoring in Computer Science. She has worked for multiple global organizations as a Software Developer and, also has an experience working in a startup to build products from scratch. She has expertise in Java, Springboot, RESTful webservices along with Apache Kafka and Elasticsearch.

  • Vivek Karna: Vivek is a first year Master's student at Indiana University, majoring in Data Science. He has experience working as a Data Scientist on developing various Machine Learning based solutions and also developing a data platform to deploy these models for inference.

πŸ™‹πŸ½ Contributing

To contribute, please read our Git Workflow guide.