Skip to content

MohammadYusif/nd0067-c4-deployment-process-project-starter

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Udagram - Full-Stack Application Deployment

CircleCI

Project Overview

Udagram is a full-stack image filtering application that allows users to register, log in, post photos to a feed, and process photos using an image filtering service. The application consists of:

  • Frontend: Angular/Ionic web application
  • Backend: Node.js/Express RESTful API
  • Database: PostgreSQL

The application is deployed on AWS using the following services:

  • AWS S3: Frontend static file hosting
  • AWS Elastic Beanstalk: Backend API hosting
  • AWS RDS: PostgreSQL database

Live Application

Frontend URL: http://udagram-frontend-368047729698.s3-website-us-east-1.amazonaws.com

Backend API URL: http://udagram-api-dev.eba-3bfwuymm.us-east-1.elasticbeanstalk.com

Screenshots

CircleCI Pipeline

CircleCI Pipeline

AWS RDS Database

AWS RDS

AWS Elastic Beanstalk

AWS EB

AWS S3 Bucket

AWS S3

Dependencies

- Node v14.15.1 (LTS)
- npm 6.14.8 (LTS) or more recent
- AWS CLI v2
- EB CLI
- PostgreSQL (AWS RDS)
- S3 bucket for frontend hosting

Installation

Prerequisites

  1. Configure AWS CLI with your credentials:
aws configure
  1. Set up environment variables (copy from udagram/set_env.sh):
export POSTGRES_USERNAME=your_db_username
export POSTGRES_PASSWORD=your_db_password
export POSTGRES_HOST=your_rds_endpoint
export POSTGRES_DB=postgres
export AWS_BUCKET=arn:aws:s3:::your-bucket-name
export AWS_REGION=us-east-1
export JWT_SECRET=your_jwt_secret
export URL=http://localhost:8100

Local Development

  1. Install root dependencies:
npm install
  1. Install and start Backend API:
cd udagram/udagram-api
npm install
npm run dev
  1. Install and start Frontend (in new terminal):
cd udagram/udagram-frontend
npm install -f
ionic serve

Deployment

Manual Deployment

Backend (Elastic Beanstalk):

cd udagram/udagram-api
npm run build
eb deploy

Frontend (S3):

cd udagram/udagram-frontend
npm run deploy

Automated Deployment (CircleCI)

Push to the master branch to trigger the CI/CD pipeline:

  1. Build job runs automatically
  2. Manual approval required for deployment
  3. Deploy job pushes to AWS

Testing

Frontend Tests

cd udagram/udagram-frontend
npm run test
npm run e2e

Documentation

Built With

  • Angular - Single Page Application Framework
  • Ionic - Cross-platform UI toolkit
  • Node.js - JavaScript Runtime
  • Express - JavaScript API Framework
  • PostgreSQL - Relational Database
  • AWS - Cloud Services

License

License

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 77.8%
  • HTML 9.0%
  • SCSS 6.2%
  • JavaScript 5.1%
  • Shell 1.9%