sa3eedDev / udgram

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Hosting a Full-Stack Application

Udagram

Udagram is a web appliacation made using ionic framework for frontend and using express as a backend. It a web app that users can post their pictures in it. Each user can sign up and login to post their pictures. This web app is inspired from Instgram.

Link for the website here

Screenshots

Homepage

Create Post

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 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

License:Other


Languages

Language:TypeScript 78.9%Language:HTML 9.2%Language:SCSS 6.3%Language:JavaScript 5.2%Language:Shell 0.3%Language:Procfile 0.0%