Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ampatspell/index65
Scanned negatives publishing app
https://github.com/ampatspell/index65
archive emberjs firebase firestore organizer pictures publishing
Last synced: about 1 month ago
JSON representation
Scanned negatives publishing app
- Host: GitHub
- URL: https://github.com/ampatspell/index65
- Owner: ampatspell
- License: mit
- Created: 2018-05-05T15:36:22.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2018-06-08T21:11:10.000Z (over 6 years ago)
- Last Synced: 2024-10-20T03:52:31.480Z (3 months ago)
- Topics: archive, emberjs, firebase, firestore, organizer, pictures, publishing
- Language: JavaScript
- Homepage:
- Size: 4.11 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# index65
Scanned negatives publishing app.
> [Ember.js](https://emberjs.com/) & [Firebase](https://firebase.google.com/) using [ember-cli-zuglet](https://github.com/ampatspell/ember-cli-zuglet). A reimplementation of my [CouchDB-based index65](https://bitbucket.org/ampatspell/index65/src/default/).
> [Demo site](https://index65-dev.firebaseapp.com) Use `[email protected]` / `hello-world` to sign-in (read-only member)
![](https://raw.githubusercontent.com/ampatspell/index65/master/docs/screenshot-2.png)
![](https://raw.githubusercontent.com/ampatspell/index65/master/docs/screenshot-1.png)
## Installation
### Firebase
* Create a firebase project
* Enable Storage
* Enable Firestore in Database section
* Authentication → Sign-in Method → Enable Email/Password### Configuration
* Copy `config-example.js` as `config.js`
* Go to Firebase console and select Project Overview → "Add Firebase to your webapp", copy config.
* Paste it in your `config.js` `production` object, the same way it is done in `config-example.js`
* Delete `messagingSenderId`### Firebase & Ember
Install [Node.js](https://nodejs.org/en/) (LTS or Latest, doesn't matter, both works just fine).
Install app dependencies:
```
$ npm install
```Install firebase functions dependencies:
```
$ cd firebase/functions
$ npm install
```Install firebase cli:
```
$ npm install -g firebase-tools
```Select your firebase project:
```
$ firebase use --add
```Build ember app and deploy it along with firebase functions, security rules:
```
npm run deploy
```### Sign-up
* Open `https://.firebaseapp.com/session/sign-up`
* Email, password, sign-upBy default none of the signed up users are allowed to access anything in the app.
### Make yourself an admin
* Open Firebase Console → Database → users → uid
* Add "admin" in roles array
* Go back to the index65, you should be an admin now.And you're done.
### Connect domain (optional)
* In Firebase Console select Hosting
* Connect Domain
* Follow the steps### Add billing (optional)
* In Firebase console bottom left there is "Spark" and "Upgrade"
* Click
* Select "Blaze", PurchaseTo set daily spending limit:
* Open Google AppEngine Settings: `https://console.cloud.google.com/appengine/settings`
* Select your Firebase project
* Under application settings, click "Edit"
* Set daily spending (0 or more)## Content
* login as admin
* add source
* add collection
* upload picturesPictures has the following expected file name format:
```
prefix--.jpgvaldis-001-001.jpg
valdis-001-002.jpg
valdis-001-003.jpg
...
valdis-130-036.jpg
valdis-130-037.jpg
```## Notes
### Schema
```
/users/{uid}
email: string
displayName: string
createdAt: date
roles: Array/sources/{source}
name: string/collections/{collection}
name: string/groups/{group}
identifier: number/images/{image}
identifier: number
storage: {
original: {
size : {
width: number
height: number
}
url: string
},
200x200: {
size: {
width: number,
height: number
},
url: string
}
1024x1024: {
size: {
width: number,
height: number
},
url: string
}
}
``````
/images/{source}/{collection}/{group}/{image}
* original
* 1024 (jpeg)
* 200 (jpeg)
```## TODO
* Group description, year, picture
* Allow selected members to edit selected sources
* Allow members to edit their `displayName`
* Delete group with images
* Delete collection including groups
* Delete source including all nested docs