Skip to content

A fullstack application deployed on AWS with CI/CD managed by circleci. This is part of the Udacity Javascript Fullstack Nanodegree

Notifications You must be signed in to change notification settings

marvin-splitt/udagram

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CircleCI

Udagram

This application is provided to you as an alternative starter project if you do not wish to host your own code done in the previous courses of this nanodegree. The udagram application is a fairly simple application that includes all the major components of a Full-Stack web application.

Production

Frontend Url: http://udacity-marvinsplitt.s3-website-us-east-1.amazonaws.com/

Backend / API Url: http://udagrambackend-env.eba-5fsw3yf6.us-east-1.elasticbeanstalk.com/

Infrastructure

  • The application is completely hosted on AWS Cloud
    • frontend on a S3 Buceket
    • media data on a separate S3 Bucket
    • api on elastic beanstalk
    • postgres on rds

Overview

Diagram

Pipeline

  • We have to main jobs:
    • a build process containing all steps for installing and building the complete application (frontend & backend)
    • a deployment process containing all steps to ship the code to the aws cloud

Overview

Diagram

Dependencies

- Node v14.15.1 (LTS) or more recent. While older versions can work it is advisable to keep node to latest LTS version

- npm 6.14.8 (LTS) or more recent, Yarn can work but was not tested for this project

- AWS CLI v2, v1 can work but was not tested for this project

- A RDS database running Postgres.

- A S3 bucket for hosting uploaded pictures.

Below are the steps for a local development setup

Getting Started

  1. Clone this repo locally into the location of your choice.
  2. Move the content of the udagram folder at the root of the repository as this will become the main content of the project.
  3. Open a terminal and navigate to the root of the repo
  4. follow the instructions in the installation step

The project can run but is missing some information to connect to the database and storage service. These will be setup during the course of the project

Installation

Provision the necessary AWS services needed for running the application:

  1. In AWS, provision a publicly available RDS database running Postgres.
  2. In AWS, provision a s3 bucket for hosting the uploaded files.
  3. Export the ENV variables needed or use a package like dotnev/.
  4. From the root of the repo, navigate udagram-api folder cd starter/udagram-api to install the node_modules npm install. After installation is done start the api in dev mode with npm run dev.
  5. Without closing the terminal in step 1, navigate to the udagram-frontend cd starter/udagram-frontend to intall the node_modules npm install. After installation is done start the api in dev mode with npm run start.

Testing

This project contains two different test suite: unit tests and End-To-End tests(e2e). Follow these steps to run the tests.

  1. cd starter/udagram-frontend
  2. npm run test
  3. npm run e2e

There are no Unit test on the back-end

Unit Tests:

Unit tests are using the Jasmine Framework.

End to End Tests:

The e2e tests are using Protractor and Jasmine.

Built With

  • Angular - Single Page Application Framework
  • Node - Javascript Runtime
  • Express - Javascript API Framework

License

License

About

A fullstack application deployed on AWS with CI/CD managed by circleci. This is part of the Udacity Javascript Fullstack Nanodegree

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published