https://github.com/ramtinsoltani/ehsan-web
A portfolio web app made with Angular for a colorization artist
https://github.com/ramtinsoltani/ehsan-web
Last synced: 4 months ago
JSON representation
A portfolio web app made with Angular for a colorization artist
- Host: GitHub
- URL: https://github.com/ramtinsoltani/ehsan-web
- Owner: ramtinsoltani
- Created: 2019-03-27T12:14:31.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2019-04-01T06:17:34.000Z (about 6 years ago)
- Last Synced: 2025-01-10T03:48:26.883Z (5 months ago)
- Language: TypeScript
- Size: 837 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Ehsan Web App
This is an Angular 7 SPA made to display a portfolio of a colorization artist.
This project uses Firebase Authentication (anonymous only), Firebase Cloud Storage, Firestore Database, and Firebase hosting.
# Building
1. `npm install`
2. Create a Firebase project and place web credentials in `src/app/config/firebase.cert.json`
3. Configure the Firebase project:
- Enable anonymous authentication
- Enable Firestore with the rules `rules/firebase-firestore.rules`
- Enable Cloud Storage with rules `rules/firebase-storage.rules`
- **OPTIONAL:** You can setup Firebase Hosting in project root (using `firebase-tools`) with files directory `dist/ehsan-web`
4. Add content in the database and storage ([Refer to Adding Content](#adding-content)).
5. `ng serve` or `ng build --prod`# Adding Content
Posts should be added inside the Firestore database. `metadata/posts` is a document with `count` field which has the number of documents inside the `posts` collection, and `posts/*` are documents with the following structure:
| Field | Type | Description |
|:------|:----:|:------------|
| title | string | The title of the post. |
| description | string | The description of the post. |
| beforeName | string | The filename of the before image inside the Cloud Storage. |
| afterName | string | The filename of the after image inside the Cloud Storage. |
| timestamp | number | A unix timestamp (creation date) for ordering the posts. |All images (one before and one after per post) should be uploaded to the storage with `cacheControl: 'public, max-age:31536000'` to enable caching. Remember that the filename of each photo should match with its post's `afterName` and `beforeName`.