Skip to content

khalidmesbah/udagram

Repository files navigation

Udagram - Hosting a Full-Stack Application

The udagram application is a fairly simple application that includes all the major components of a Full-Stack web application.

Deployment Process Documentation

the Deployment Process Documentation lives here.

Getting Started

  1. Clone this repo locally into the location of your choice.
  2. Open a terminal and navigate to the root of the repo
  3. follow the instructions in the installation step

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.

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 udagram-api to install the node_modules npm i. 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 udagram-frontend to intall the node_modules npm i. 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 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