updated documentation
Before Width: | Height: | Size: 33 KiB |
@ -0,0 +1,88 @@
|
|||||||
|
# App Dependencies
|
||||||
|
|
||||||
|
### udagram-front
|
||||||
|
|
||||||
|
```
|
||||||
|
"dependencies": {
|
||||||
|
"@angular/common": "^8.2.14",
|
||||||
|
"@angular/core": "^8.2.14",
|
||||||
|
"@angular/forms": "^8.2.14",
|
||||||
|
"@angular/http": "^7.2.16",
|
||||||
|
"@angular/platform-browser": "^8.2.14",
|
||||||
|
"@angular/platform-browser-dynamic": "^8.2.14",
|
||||||
|
"@angular/router": "^8.2.14",
|
||||||
|
"@ionic-native/core": "^5.0.0",
|
||||||
|
"@ionic-native/splash-screen": "^5.0.0",
|
||||||
|
"@ionic-native/status-bar": "^5.0.0",
|
||||||
|
"@ionic/angular": "^4.1.0",
|
||||||
|
"core-js": "^2.5.4",
|
||||||
|
"rxjs": "~6.5.4",
|
||||||
|
"zone.js": "~0.9.1"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@angular-devkit/architect": "~0.12.3",
|
||||||
|
"@angular-devkit/build-angular": "^0.803.24",
|
||||||
|
"@angular-devkit/core": "~7.2.3",
|
||||||
|
"@angular-devkit/schematics": "~7.2.3",
|
||||||
|
"@angular/cli": "~8.3.25",
|
||||||
|
"@angular/compiler": "~8.2.14",
|
||||||
|
"@angular/compiler-cli": "~8.2.14",
|
||||||
|
"@angular/language-service": "~8.2.14",
|
||||||
|
"@ionic/angular-toolkit": "~1.4.0",
|
||||||
|
"@types/jasmine": "~2.8.8",
|
||||||
|
"@types/jasminewd2": "~2.0.3",
|
||||||
|
"@types/node": "~10.12.0",
|
||||||
|
"@typescript-eslint/eslint-plugin": "^2.20.0",
|
||||||
|
"@typescript-eslint/parser": "^2.20.0",
|
||||||
|
"codelyzer": "~4.5.0",
|
||||||
|
"jasmine-core": "~2.99.1",
|
||||||
|
"jasmine-spec-reporter": "~4.2.1",
|
||||||
|
"karma": "~3.1.4",
|
||||||
|
"karma-chrome-launcher": "~2.2.0",
|
||||||
|
"karma-coverage-istanbul-reporter": "~2.0.1",
|
||||||
|
"karma-jasmine": "~1.1.2",
|
||||||
|
"karma-jasmine-html-reporter": "^0.2.2",
|
||||||
|
"protractor": "~5.4.0",
|
||||||
|
"ts-node": "~8.0.0",
|
||||||
|
"tslint": "~5.12.0",
|
||||||
|
"typescript": "^3.5.3"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### udagram-api
|
||||||
|
|
||||||
|
```
|
||||||
|
"dependencies": {
|
||||||
|
"@types/bcryptjs": "2.4.2",
|
||||||
|
"@types/jsonwebtoken": "^8.3.2",
|
||||||
|
"aws-sdk": "^2.429.0",
|
||||||
|
"bcryptjs": "2.4.3",
|
||||||
|
"body-parser": "^1.18.3",
|
||||||
|
"cors": "^2.8.5",
|
||||||
|
"dotenv": "^8.2.0",
|
||||||
|
"email-validator": "^2.0.4",
|
||||||
|
"express": "^4.16.4",
|
||||||
|
"jsonwebtoken": "^8.5.1",
|
||||||
|
"pg": "^8.7.1",
|
||||||
|
"reflect-metadata": "^0.1.13",
|
||||||
|
"sequelize": "^5.21.4",
|
||||||
|
"sequelize-typescript": "^0.6.9"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@types/bluebird": "^3.5.26",
|
||||||
|
"@types/cors": "^2.8.6",
|
||||||
|
"@types/express": "^4.16.1",
|
||||||
|
"@types/node": "^11.11.6",
|
||||||
|
"@types/sequelize": "^4.27.44",
|
||||||
|
"@types/validator": "^10.9.0",
|
||||||
|
"@typescript-eslint/eslint-plugin": "^2.19.2",
|
||||||
|
"@typescript-eslint/parser": "^2.19.2",
|
||||||
|
"chai": "^4.2.0",
|
||||||
|
"chai-http": "^4.2.1",
|
||||||
|
"eslint": "^6.8.0",
|
||||||
|
"eslint-config-google": "^0.14.0",
|
||||||
|
"mocha": "^6.1.4",
|
||||||
|
"ts-node-dev": "^1.0.0-pre.32",
|
||||||
|
"typescript": "^3.9.10"
|
||||||
|
}
|
||||||
|
```
|
@ -0,0 +1,33 @@
|
|||||||
|
# Infrastructure Description
|
||||||
|
|
||||||
|
The application have `udagram/udagram-front` for the frontend and `udagram/udagram-api` for the backend
|
||||||
|
|
||||||
|
- The frontend is hosted on Amazon S3
|
||||||
|
- The Backend is hosted on Amazon Elastic Beanstalk
|
||||||
|
- The postgres Database is hosted on Amazon RDS
|
||||||
|
|
||||||
|
## Infrastructure Diagram
|
||||||
|
|
||||||
|
![screenshot](pictures/udagram.jpg)
|
||||||
|
|
||||||
|
## Screenshots
|
||||||
|
|
||||||
|
|
||||||
|
### RDS
|
||||||
|
|
||||||
|
![screenshot](pictures/rds.jpg)
|
||||||
|
|
||||||
|
### Elastic Beanstalk
|
||||||
|
|
||||||
|
![screenshot](pictures/ebs.jpg)
|
||||||
|
|
||||||
|
### S3
|
||||||
|
|
||||||
|
![screenshot](pictures/s3Front.jpg)
|
||||||
|
|
||||||
|
### Pipeline
|
||||||
|
|
||||||
|
![screenshot](pictures/env.jpg)
|
||||||
|
![screenshot](pipeline.jpg)
|
||||||
|
![screenshot](pictures/build.jpg)
|
||||||
|
![screenshot](pictures/deploy.jpg)
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 191 KiB After Width: | Height: | Size: 191 KiB |
Before Width: | Height: | Size: 192 KiB After Width: | Height: | Size: 192 KiB |
Before Width: | Height: | Size: 189 KiB After Width: | Height: | Size: 189 KiB |
Before Width: | Height: | Size: 138 KiB After Width: | Height: | Size: 138 KiB |
Before Width: | Height: | Size: 134 KiB After Width: | Height: | Size: 134 KiB |
After Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 168 KiB After Width: | Height: | Size: 168 KiB |
Before Width: | Height: | Size: 166 KiB After Width: | Height: | Size: 166 KiB |
Before Width: | Height: | Size: 71 KiB After Width: | Height: | Size: 71 KiB |
@ -0,0 +1,32 @@
|
|||||||
|
# Pipeline
|
||||||
|
|
||||||
|
The application use the integration of CircleCI with github, after each commit on the master branch, it will trigger CircleCI to deploy the application on AWS.
|
||||||
|
|
||||||
|
## Steps
|
||||||
|
|
||||||
|
![screenshot](pictures/pipelineschema.jpg)
|
||||||
|
|
||||||
|
## CircleCI and AWS :
|
||||||
|
|
||||||
|
### Build
|
||||||
|
|
||||||
|
- Install Node/NPM
|
||||||
|
- Checkout the github repo code
|
||||||
|
- Install the dependencies for the Backend
|
||||||
|
- Build the Backend
|
||||||
|
- Install the dependencies for the Frontend
|
||||||
|
- Build the Frontend
|
||||||
|
- Lint FrontEnd
|
||||||
|
|
||||||
|
### Hold
|
||||||
|
|
||||||
|
- Need manual approval on CircleCI to trigger deployement
|
||||||
|
|
||||||
|
### Deploy
|
||||||
|
|
||||||
|
- Setup AWS CLI
|
||||||
|
- Setup AWS Access Key ID
|
||||||
|
- Setup Elastic Beanstalk CLI
|
||||||
|
- Deploy backend
|
||||||
|
- Deploy frontend
|
||||||
|
|