Live Server: : www.todo.geonyoon.com
Advanced Todo application is a task management tool. You can create, edit, and delete multiple todo lists. Also, it calculates how far away from being done you are. Each todo inside of the lists can be differently colored by its degree of importance.
- Build a CI + CD pipeline from scratch with Github, Travis CI, and AWS
- Automatically deploy the code when it is pushed to Github
- Utilize the Docker CLI to inspect and debug running containers
- Have full authentication flow using Google and Facebook Oauth
- Push code to github
- Travis automatically pulls repo
- Travis builds a test image and test code
- Travis build production images
- Travis pushes built production images to Docker Hub
- Travis pushes project to AWS EB
- EB pulls images from Docker Hub and delploy
Create and customize your own key.js in server/config
module.exports = {
'googleAuth' : {
'clientID' : 'YOUR_GOOGLE_AUTH_ID',
'clientSecret' : 'YOUR_CLIENT_SECRET',
'callbackURL' : 'http://localhost:3050/auth/google/callback'
},
'facebookAuth' : {
'clientID' : 'YOUR_CLIENT_ID',
'clientSecret' : 'YOUR_CLIENT_SECRET',
'callbackURL' : 'http://localhost:3050/auth/facebook/callback'
},
mongoURI : 'YOUR_MONGO_URL',
cookieKey: 'RANDOMLY_GENEREATED_KEY',
}
Install Docker and enter follwoing line
docker-compose up --build
- Docker - computer program that performs operating-system-level virtualization
- AWS Elastic Beanstalk - an orchestration service offered from Amazon Web Services for deploying infrastructure which orchestrates various AWS services, including EC2, S3, Simple Notification Service, CloudWatch, autoscaling, and Elastic Load Balancers.
- AWS VPC - enables you to define a virtual network in your own logically isolated area within the AWS cloud,
- AWS IAM - AWS Identity and Access Management (IAM) enables you to manage access to AWS services and resources securely.
- Travis CI - Travis CI is a hosted, distributed continuous integration service used to build and test software projects hosted at GitHub
- Nginx - Nginx is a web server which can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache
- React - Used to build client side
- Redux - Predictable state container for JavaScript apps
- Node.js - Used to build client side
- Express.js - Framework for Node.js
- MongoDB - Used to build database
- mongoose.js - MongoDB ODM for Node.js
- mlab - Cloud MongoDB service
- **Geon Yoon ** - Initial work - GeonYoon