Take charge of your productivity.
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
The Pear Timer is a prodcutivity app for developers looking to organize their tasks and work smart. Pear Timer brings together research-backed features that will boost your productivity: a pomododoro timer, custimizable todo list, and more--all inside a dashboard unique to your account. Take charge of your productivity and join Pear Timer today!
- Amazon Web Services
- AWS IAM (Identity Access Management)
- Amazon RDS (Relational Databse System)
- Amazon EBS (Elastic Bean Stalk)
- Amazon EC2 (Elastic Compute Cloud)
- SOME SORT OF AUTHENTICATION TOOL, I ASSUME (TODO)
- Visual Studio Code
- GitHub Actions
- Docker
This diagram outlines the toolkit our dev team used in every stage of the development process.
This diagram shows the CI/CD Pipeline for our application. Code development occurs on developers' local machines and is pushed to our central repository. GitHub Actions achieve continous integration by automating the building, testing, and docker initialization. Finally, GitHub Actions deploys the compiled application to Elastic Beanstalk, which allocates and configures our infrastructure and production environment, hosting our application.
This diagram shows the network architecture of our application. The network shown is the state of the production environment after deployment by Amazon Elastic Beanstalk.
Instances of the containerized application are hosted on Amazon EC2 instances (essentially AWS virtual machines). These web servers are in the same security group and subnet in one of our Virtual Private Clouds (VPC). Because these resources are grouped together, they are essentially in their own private network, which has a route to an Internet Gateway (I.G.), providing the VPC with access to the public internet.
Similarly, our database was created with AWS as well. We created a Postgresql database with AWS Relational Database Service (RDS) hosted on the cloud. It is in a private subnet and security group, but this subnet has a route to an Internet Gateway, which makes the database publicly available.
With this architecture, our application, Database, and end-users all communicate with eachother through the public internet. Elastic Beanstalk will scale infrastructure up and down as needed as well as perform load balancing automatically.
This repo represents the final iteration of the Pear Timer application, but it is the culmination of various demos that used different design patterns and deployment strategies. To see our previous iteration, click here. Here is an overview:
- Java backend API
- Node.js/React frontend
- mySQL database on mySQL
- Containerized by Docker
- Deployed with Heroku
- Addy Cummins (ad-800)
- Bradley Goldsmith (goldsmithb)
- Mohammed Mansour (Mohammed-blue)
- Pablo Landa (landa44)