Faith Okoth
Udagram is a simple cloud application developed alongside the Udacity Cloud Engineering Nanodegree. It allows users to register and log into a web client, post photos to the feed, and process photos using an image filtering microservice.
The project is split into two parts:
npm
commands.A file named set_env.sh
has been prepared as an optional tool to help you configure these variables on your local development environment.
We do not want your credentials to be stored in git. After pulling this starter
project, run the following command to tell git to stop tracking the script in git but keep it stored locally. This way, you can use the script for your convenience and reduce risk of exposing your credentials. git rm --cached set_env.sh
Afterwards, we can prevent the file from being included in your solution by adding the file to our .gitignore
file.
Create a PostgreSQL database either locally or on AWS RDS. The database is used to store the application's metadata.
5432
. This is the typical port that is used by PostgreSQL so it is usually set to this port by default.Once your database is set up, set the config values for environment variables prefixed with POSTGRES_
in set_env.sh
.
POSTGRES_HOST
is most likely localhost
POSTGRES_HOST
is most likely in the following format: ***.****.us-west-1.rds.amazonaws.com
. You can find this value in the AWS console's RDS dashboard.Create an AWS S3 bucket. The S3 bucket is used to store images that are displayed in Udagram.
Set the config values for environment variables prefixed with AWS_
in set_env.sh
.
Launch the backend API locally. The API is the application's interface to S3 and the database.
udagram-api/
: npm install . http://localhost:8080/api/v0/feed
in your web browser to verify that the application is running. You should see a JSON payload. Feel free to play around with Postman to test the API's.Launch the frontend app locally.
udagram-frontend/
: npm install . ionic build
command. ionic serve http://localhost:8100
in your web browser to verify that the application is running. You should see a web interface.udagram-api
-- does it look like we can divide it into two modules to be deployed as separate microservices?.dockerignore
file is included for your convenience to not copy node_modules
. Copying this over into a Docker container might cause issues if your local environment is a different operating system than the Docker image (ex. Windows or MacOS vs. Linux).eslint
has been set up for TypeScript in the codebase for you. To lint your code, run the following: npx eslint --ext .js,.ts src/ To have your code fixed automatically, run npx eslint --ext .js,.ts src/ --fix set_env.sh
is really for your backend application. Frontend applications have a different notion of how to store configurations. Configurations for the application endpoints can be configured inside of the environments/environment.*ts
files.set_env.sh
, environment variables are set with export $VAR=value
. Setting it this way is not permanent; every time you open a new terminal, you will have to run set_env.sh
to reconfigure your environment variables. To verify if your environment variable is set, you can check the variable with a command like echo $POSTGRES_USERNAME
.