-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Production app viability #142
Comments
Hey @alterx, welcome to Hoodie :)
This sounds like a great project! I’ve one technical question about "the visually impaired get a notification when they arrive to their bus stop": I assume you want to app to be able to run in the background than? You might need a native app for this. Maybe Service Worker can do that already, but that would limit you to Android devices at this point. Hoodie can be used for native apps as long as you use web technologies, we don’t have native Java/Swift clients yet.
Defining public routes that expose read-only data from a database is possible with Hoodie today. What we don’t yet have (but could work on right away) is a client API that would provide the same API as const routesStore = hoodie.store.open('public-routes', {onlineOnly: true})
routesStore.findAll().then(renderPublicRoutes)
The UI part would require some work. Ideally this would be possible directly trough the Hoodie admin dashboard but we are currently not working on it, we want to finish the plugin architecture first, then build the admin dashboard as a plugin. For the time being, you could build a custom plugin for it with custom routes etc, but I’d need to have a look into it, I expect some bugs here and a few things that would still need to be implemented, but I’d be happy to provide guidance as needed.
What do you mean with "public" user accounts? What is possible today is that every user has their own private store and they can store any data in it that will also work offline.
Great :)
Good choice! I’ve been there, don’t. In case Hoodie becomes to much of a barrier, you can still use PouchDB directly and build out your own backend. You can still use parts of Hoodie like only the account module for example, Hoodie’s architecture is very modular.
I think it’s feasible. It’s definitely an app within the scope of Hoodie and the parts that are missing have already been thought about and can be worked on right away as far as I can tell right now.
I don’t see scaling issues right now. What would be problematic is when you would need lots of data sharing, but it doesn’t look like it at this point. Also CouchDB 3, which is in the works, will resolve these problems, too. In terms of Hardware requirements, that is a very good question and we should come up with a good answer and add it to our documentation :) The Hoodie app itself is basically just a hapi application, it runs everywhere, including read-only deployment targets like Heroku and now. For CouchDB, let me ping @janl. One thing you could check out is , does that help already?
The plugin system itself is working, ETA could be as early as Monday. I need to clean up the pull request and add documentation, other than that it’s all done!
A hapi plugin can load more hapi plugins, there is no limit in terms of how many routes you can add etc, the logic can be spread across multiple files, too.
minutes.io runs smoothly with thousands of active users using one CouchDB instance. Let us know if you have any further questions! |
Hey, @gr2m , thanks for such a quick response.
Yeah, we're going to be using either React-Native or Ionic and the native Geofencing features of iOS and Android. The main idea is to define a geofence around the bus stop and let the OS monitor it. Once, the geofence limit is breached we'll send a notification to the user.
Yeah, that's basically what I mean. By "public" user I mean any user that creates an account and uses the app.
So, for example, we could install the
Did I miss something? Is that the proper way to define "public routes that expose read-only data from a database"?
One problem I see regarding the global-share approach is that an user could create and publish fake bus routes. I guess the answer is this admin dashboard. Even if it's not being worked on I could get some inspiration out of it. Is there a way to see it working right now? The administrative accounts are created outside the hoodie account system, right? It sounds like having the plugin system in place is the key to fix/implement most of the things we need for our project. Is this the PR I should be looking at? |
yes it is
the global share plugin is deprecated. It’s from the old Hoodie and won’t work with the new one.
The current admin dashboard can be accessed at The admin dashboard is currently an ember app and doesn’t do much. It was just a quick experiment, we like the ember community a lot, but might move away from ember to make it easier to contribute to. The main repository is here: https://github.com/hoodiehq/hoodie-admin We also have a work-in-progress admin client: https://github.com/hoodiehq/hoodie-admin-client. It currently only has methods to manage accounts. For your use case, you need APIs to manage custom databases and data within them. The backend logic for that already exists, maybe a few routes might be missing. But overall I think extending the client API to let you manage databases / data is what you’ll need for a custom admin dashboard for your app. Having an Hoodie admin client API to open databases is actually a similar requirement to adding and api to the Hoodie client which lets users open custom databases, like your public routes database |
Hey @gr2m, I'd like to start working on the ability to define online-only, global collections (something like what you mentioned in this comment). I'd like to discuss implications and where to start. Hoodie is modular (and that's awesome!) but that also makes it harder to spot where to start. I know I probably need to look at https://github.com/hoodiehq/hoodie-store-server-api and https://github.com/hoodiehq/pouchdb-hoodie-api for the server part (creating new online-only databases) and maybe here https://github.com/hoodiehq/hoodie-admin-client (?) in order to extend the admin module to support global collections in addition to accounts. ps. I tried to get my slack invite but it looks like the site is down :( |
Hey Carlos, I’d be more than happy to get you going. Today is pretty packed for me but I’ll have time over the weekend. Sorry for the slack issue, I’ll have to investigate this. Can you dm me your email address? https://twitter.com/gr2m |
The slack thing also broke for https://github.com/storybooks/storybook so maybe re deploy it to now.sh (?) Sure, there's no need to rush :) |
I'm currently developing an application that will allow the visually impaired to get a notification when they arrive to their bus stop and I'd love to use Hoodie since mobile internet connections are flaky and we don't want to loose the ability to provide a good user experience to people that will rely on this app.
In order to achieve this we need to create:
We don't expect a lot of users initially so we can afford some experimentation with the technologies and, to be honest, I'd rather use Hoodie and fix some hiccups than build my own sync engine.
So,
hoodie/server
but what if I want to add multiple "plugins"?Thanks in advance (and sorry if this is not the right place to ask these kind of questions)
The text was updated successfully, but these errors were encountered: