etimo / photo-garden Goto Github PK
View Code? Open in Web Editor NEWAn easy way for anyone to get an overview of a large amount of photos from different vendors and sources. ๐ท ๐ผ๏ธ
Home Page: https://photo.garden
License: MIT License
An easy way for anyone to get an overview of a large amount of photos from different vendors and sources. ๐ท ๐ผ๏ธ
Home Page: https://photo.garden
License: MIT License
Should be able to filter by provider in the ui
Should read from Elastic Search
I and @teozkr discussed this a bit today, would be nice to bring this up for a larger discussion on friday.
Should we continue developing micro/nanoservices or should we aim for "domain"-grouped larger services? What is the difficulty/benefit of the different strategies?
What will need scaling? E.g. downloading of images vs normalizing data structures?
How to scale? Or simply, do we think about scaling atm?
Do we aim to scale services by number of workers or by hardware? Perhaps different for different services? How about lambda or similar instead?
How can we manage a fast and clean development environment without current problems (compilation time, dependencies, overhead in docker images)?
How small should services be?
At the current level the number of services will explode in the future. This gives a large overhead in docker images, deployment handling, etc etc
Just writing down some of the thoughts we discussed. Feel free to add more to this issue before friday
That we can use for internal storage, transformations etc. I.e. info from e.g. Google Drive should be transformed to this generic format.
Check out launch darkly etc. but prefer open source. Prefer not to build custom solution...
User has a personal account
We are going to need a queue (for example to process metadata from providers, analyze images and so on, general persistent async operations).
Rabbitmq or some other? I know some of us have worked with rabbitmq. This could also be abstracted if we decide later on to change it.
Current problem: When using pub-sub in rabbitmq, the messages are only delivered if the subscriber is currently connected.
What we need: When using pub-sub and the subscriber is not connect (perhaps it has crashed) then it should receive the messages when it goes online. The subscriber needs to get all messages since it started subscribing (not since beginning of time).
Some images and thumbnails (e.g. from google drive) are short-lived. We need to download them and store them. This will also apply to a lot of other providers (e.g. dropbox that doesn't even provide thumbnails)
Some thoughts from the subway: Should we have one unified API Gateway for the project, and as such letting this API Gayeway be the only API exposed to the internet?
I'm sure you've worked with API Gateways before, and understand their purpose. This will also be relevant in how we set up things like DNS later, so we should determine whether we want one early.
If we decide to create one, we need to:
Jwt is self-contained and thus we can make requests stateless.
First time a user logs in we start downloading all their data. Since we issue an offline token we are able to listen for future changes in Google drive for the user so we can process new files without the user having to login again. This means that the next time they arrive at Photo garden all their stuff will already be present.
https://developers.google.com/drive/v3/reference/changes/watch
Problems:
Proposed solution:
Possible cons:
SSL certificate
Arbitrary place definition; e.g. city, geo rect, country. Whatever fits and is easy to implement
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.