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.
π» Production Demo
π‘ Staging Demo
- 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
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
- The production version is currently deployed at http://scrapbook.rocks/
- The staging version is currently deployed at http://staging.scrapbook.rocks/
- Jenkins is currently deployed at http://149.165.171.239:8080/
- Redis instance is deployed at http://149.165.157.223:6379/
- MongoDB instance is deployed at http://149.165.172.158:27017/
Make a push to the main
branch and Jenkins will automatically deploy the whole application
Make a push to the develop
branch and Jenkins will automatically deploy the whole application
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
$ git clone https://github.com/airavata-courses/scrapbook.git
$ cd scrapbook
Follow the guide in our wiki here to locally install scrapbook (all services).
# in the scrapbook root directory
$ git checkout docker
$ docker-compose up
Navigate to http://localhost:4200/
These are the load testing results for a few features
Please visit our wiki page here to see our mockup designs.
-
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.
To contribute, please read our Git Workflow guide.