Skip to content
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

Getting started with Parse-Server #4321

Closed
flovilmart opened this issue Nov 5, 2017 · 26 comments
Closed

Getting started with Parse-Server #4321

flovilmart opened this issue Nov 5, 2017 · 26 comments

Comments

@flovilmart
Copy link
Contributor

flovilmart commented Nov 5, 2017

We have many guides out there, all introducing a different way to get started with parse-server:

Here: https://github.com/parse-community/parse-server#running-parse-server, through global installation,

Here: http://docs.parseplatform.org/parse-server/guide/#getting-started, with the bootstrap script (very powerful IMHO)

or the parse-server-example.

This may be a bit complex for a new comer to get it up and running, so I suggest we consolidate all approaches.

The best way, would be one that allows a 'flexible' configuration of parse-server, provides an evolutive way to move forward and deploy to any 3rd party provider easily.

Perhaps a mix of bootstrap.sh and something else. I find parse-server-example being a bit odd as it encourages people forking / having this as a remote and often, cause security issues.

What's great on the parse-server-example is the 'setup page' which is interactive and fun, perhaps we could move it somewhere else, / install it when using bootstrap.sh if the user wants.

@tomcooperandco
Copy link

Generally, it would be good if we could make Parse-Server-Example the "front page" showcase of Parse Server. This is where most new users are going to start out & the documentation should reflect this?

More advanced developers will then head off to the main parse server report (which clearly requires greater general knowledge to set up without the frameworks provided in Parse Server Example.

@tomcooperandco
Copy link

I prefer the content layout & style of the bootstrap edit too personally.

Presumably most of this content was from the parse.com days? Where did the separate Github content come from?

@flovilmart
Copy link
Contributor Author

Did you have a look at the bootstrap.sh script, as documented in the docs/parse-server guide? It literally takes 1 minute to get the server running, without prior knowledge of git or npm.

@tomcooperandco
Copy link

tomcooperandco commented Nov 7, 2017

As a beginner I started with Parse Server Example (due to the Heroku app link).

At the time, this seemed the "friendliest" mode of getting up & running.

I suppose my question is does this need better explaining in the docs (or is it me not reading it properly in the first place)?

I'm looking at it from the point of view of a semi competent Dev (which my understanding is where Parse was initially supposed to assist).

@agwl-saurabh
Copy link

When i started using parse server i almost have no knowledge of server set up. we all was using parse because we don't have server knowledge. I tried all option which was listed in parse GitHub including alternative parse provider. but i found AWS button best option to run the server. still i don't know how to run "bootstrap.sh" today i tried to run as per the document but not able to run the server.

Ruining parse server locally is more pain in compare to run parse server on some service provider. as i never able to run mondoDB on local laptop. running it on EC2 or any linux is far easy.

Why I prefer AWS because it have best document and best help you can found over internet. which more matter to beginner. and some time its very difficult to help all as they might be coming from different background for e.g i never work on blank server like EC2 before parse never used any Linux commend for any personal website i only used control panel. so if we are solving very specific issue by creating new type of set up like any security issue or something else then it will be best else. I would like to see some new feature in parse like dynamic links concept on parse .

@flovilmart
Copy link
Contributor Author

Did you check he docs here: http://docs.parseplatform.org/parse-server/guide/. Just at the beginning, can you tell me what you don’t get about:

$ sh <(curl -fsSL https://raw.githubusercontent.com/parse-community/parse-server/master/bootstrap.sh)
$ npm install -g mongodb-runner
$ mongodb-runner start
$ npm start

@montymxb
Copy link
Contributor

montymxb commented Nov 7, 2017

If we can keep the existing varying approaches, but consolidate them like @flovilmart stated originally, I think that would be pretty handy. I don't think we should necessarily get rid of things like the parse-server-example repo, but it would be much easier if we consciously choose to focus on a singular place for updates as we make changes, new features, etc. We could update the other examples if absolutely needed, but priority would be on what should be read first.

To second what was mentioned above ^ the bootstrap script is super handy. For those that aren't sure how to configure things from scratch it walks you step by step though the process of setting up the basics yourself (and setting the reset for you). The rest is just a few commands and you're running. I would highly recommend it!

Also seeing all the ways people have gotten started with parse it seems like we could benefit from a global 'start here' page that is the absolute square one in all cases. All the additional refs, docs, etc. could point back to this at the start. No matter where someone went we would be able to rope them back to what we intend for them to see to get started. From there they can explore as they need to.

@flovilmart
Copy link
Contributor Author

flovilmart commented Nov 7, 2017 via email

@tomcooperandco
Copy link

tomcooperandco commented Nov 11, 2017

@flovilmart regarding your response to @agwl-saurabh (& possibly me), I get this documentation as I know what $ sh, $ npm, etc means & where you put it.

What was really powerful about the previous iteration of Parse (hosted) was that you could be just out of a beginners javascript course & work out how to get an API up & running.

Similarly, hitting the Heroku build, or similar option on Parse Server Example gives a similar no fuss route, with nothing like npm or other command line tools to master.

This is what makes Parse so useful & I think its a good direction to aim future focus at. A seasoned dev is either going to build their own API or work out how to use "full fat" Parse far easier than a novice trying to work out which bits do what.

To that end I strongly believe that Parse Server Example should be possibly rebranded & act as the main initial build option. It should be clearly stated that there is another option however (standard Parse server) which you can install on your own server & then head off to provide separate guidance specifically for that in more depth with notices that the Parse Server Example is a better place for beginners to start.

Getting Started Appearance

As above, this should be a plain english "this is what it does" followed by two options:

  1. parse-server-express
  2. parse-server-standalone

The names probably need a bit of work, but example currently feels like a half baked afterthought. As for measuring it, I think we'll probably see more interaction in the community. It probably needs a bit of promo in the right places. One thing that isn't very good at the moment is the community. I post stuff on Gitter & usually don't get much of a response. If we can link this more into the repo (perhaps a link in Parse Dashboard) to encourage more people to talk & discuss issues it would also be beneficial.

@flovilmart
Copy link
Contributor Author

flovilmart commented Nov 24, 2017

Another reason as for Why I don't like the parse-server example repo: https://stackoverflow.com/questions/47466767/git-push-heroku-master-not-working

@thomascoope the main issue is the situation most of the non technical users are landing after hitting that button. I discussed also with MSFT Azure engineers, and I don't believe you imagine the amount of support they need to give to lost users after they simply hit the deploy button. We've had to deal with all the weirdness of ElasticBeanstalk as well.

While in theory, your argument holds, in practice, it puts every single starter user in a difficult place.

I want to have the best of both worlds, something easy to get started with, but that from the start puts you on the right track to learn and evolve. Those buttons are causing more harm than good so far.

@flovilmart
Copy link
Contributor Author

besides the buttons, parse-server-example is bad bad and bad, I can't state enough how bad it is, once you know what's inside the main parse-server repo, and actually how much knowledge you need to get started. There are more pre-requisite to correctly run parse-server-example than parse-server itself, and more chances to do the wrong thing.

I don't hear a compelling argument that parse-server-example actually help users / developers in best practices, ease of use etc... besides the fact there's tons of buttons for various hosting services that usually a user has no knowledge.

@tomcooperandco
Copy link

So, do you think that parse-server-example should be killed off? I've posted some links on the stackoverflow post. I knew nothing about API's when I started using parse.com. Perhaps if there is better documentation "Parse Server For Dummies" style?

I'd like to ask this - who is Parse Server aimed at? I say this because I have a professional developer working with me on my project now. His initial attitude was "we'll just build our own API from scratch like I normally do". I was already using Parse Server so encouraged him to get his head into it.

Now that he's gotten his head around it, he finds it really great because its an out of the box solution.

I suppose if I was starting out today, I'd probably end up at Firebase or the Azure API App (if its still going). Parse Server should hold the middle ground between knowing a bit of front-end javascript to running your own custom built API.

For this, I do believe that its important to have an easy to build solution, where you don't have to worry about setting up servers (other than clicking on a Heroku link). Perhaps linking through the official documentation through to how-to videos where typical setups can be explored & explained might be a good way of training users (like me) into the service.

Otherwise, they'll go elsewhere.

@tomcooperandco
Copy link

While in theory, your argument holds, in practice, it puts every single starter user in a difficult place.

I think this with whichever option it is just needs to be simple & understandable at a low level.

@flovilmart
Copy link
Contributor Author

I completely agree with you, and I believe parse-server-example doesn't answer at all the concerns you express (besides the deploy to heroku button).

Deploying is only one part of the issue, and then how do you deploy cloud code to heroku? How to add a package in nodejs? how do you setup the AWS storage adapter? All need to have a properly cloned project, an understanding of node / npm / git etc...

parse-server-example, if anything drives you to the worst path possible.

I'm not against examples, heck, I'd love to add an examples folder with k8s, appengine ... name it configuration, README's and getting started guides. I don't believe deploying to heroku an empty instance is the 1st thing to do actually.

I am not disagreeing that the parse-server-example repo brings some value, but the wrongs outweighs the rights.

Just look at the number of open PR's in this repo with private code, possibly master keys and credentials.

Don't tell me that's good :)

@tomcooperandco
Copy link

Haha,

Very true. So, I guess that on that basis we should look at providing comprehensive guidance for setting up Parse-Server on say Heroku?

I think to a certain degree, stupid posts are going to be the nature of the product as it will be people first foray into hosting such as Azure, AWS or Heroku.

How about this - at the top of the readme:

  1. Direct new users unfamiliar with hosting products, node, etc to sashido.io or similar products (if they're out there), explaining that this is a hosted solution for beginners who don't want to worry about server management.
  2. Get together an "idiots guide to Parse Server" guide with videos, etc (like the one on Udemy) for people starting out - explaining that they should have an understanding of Node, npm, git, Heroku, Notepad, etc before starting (this should be in red flashing lights - signature required before proceeding)
  3. Get stuck in...

The only thing that I would say about having Parse-Server-Example there with the Heroku button is that people like me tinker, scratch their heads, ask daft questions & then end up building software with it after they've asked daft questions & tried to figure things out.

I can see from the point of view of yourself trying to provide support it must get frustrating. For me, I wouldn't have gotten my head around the service without the ease of deployment to Heroku (with the help from the Youtube video posted on the Stack Overflow question).

I'm still a pretty lousy developer, but I've been able to get a product 90% working & now have a professional dev who also sees value in the product, so we'll continue with it.

As (& if) our company grows, we'll inevitably then start tweaking & improving Parse Server which is good for the community.

So, my parting comment would be that however the repo's are re-organised, it shouldn't be at the expense of attracting graduates of Firebase, etc. The service just needs really good how-to's - ideally in video form - with the full documentation being written.

@flovilmart
Copy link
Contributor Author

I like you suggestions a lot, as we’re starting to outline what really matters, we haven’t touched the fact that we have a full webpage, a docs repo / page as well as a blog.

I’d like to craft a strategy with the community to make it easier for everyone, yes, the heroku deploy is amazing for quick testing apps, and in that sense, we could go further and generate strong appID, masterKey etc...

An evolution guide, from heroku to hero, would be nice too, so you have tools to scale your deployment and your development practices.

@montymxb
Copy link
Contributor

It does really sound like we need a moment to site down and figure out the direction for future getting started, how to's, examples, etc. In the spirit of keeping things understandable we could just start at square one, and each subsequent addition would expand on that. From there it would just be a matter of reading/watching any prior material in order to catch up to what's new.

Also sounds like we should deprecate and eventually phase out parse-server-example since so many people are landing there, and then moving into troubles. However we would need somewhere else to send them, and eventually to replace it.

What does everyone think of this. What if we started up a series for parse server on parseplatform.org? Basically a zero to parse-server hero kind of thing. Probably would be easiest for us to do written parts and examples, but we could do videos as well if there's interest in it. If we did something like this we could just point everyone and everything to it.

These are just thoughts, but we keep bumping into the issue that there's no strong square one yet for individuals who are absolutely starting out. Maybe doing what's mentioned above here could accomplish that.

@tomcooperandco
Copy link

tomcooperandco commented Nov 25, 2017

All sounds great. I think videos are always more powerful & engaging for newbies, as you've got to know where to look in written guides (or read the whole thing).

This is where Asim Hussains guide on Udemy is really handy (looks like its also available free here - https://www.youtube.com/playlist?list=PL-TLnxxt_AVFEOlCFBHBG_BbpaF3UX-EU). Even for my colleague who's a seasoned dev, he spent a night watching the content & got everything up & running with a general understanding of what did what.

The documentation is pretty hot already, we just need to hold peoples hands into the service. A bit of clickbait "graduating off Firebase" or "Hate building API servers - now you don't have to" would probably be a good strategy. Maybe have a chat with Asim to see if he'd be interested in helping out? Mitchell Hudson also has a good Javascript intro video series which is really great.

@flovilmart
Copy link
Contributor Author

Do you guys want me to start a ‘getting started’ project on one of our repos? So we can start compiling ideas, and tasks if that’s something you want to participate? I may write a general draft of the direction we want to go and the motivation for such ‘refactor’.

It seems that we all agree something needs to be done, and quickly.

The buttons could me move do the getting started guide on heroku, like ‘try out parse-server’. Not get started with it :)

@tomcooperandco
Copy link

Sounds good. I'd like to help. My time is somewhat limited as I'm running an architecture & construction company, building a startup & have a young family. My knowledge of coding isn't too hot, but I'm good with product so where I lack in competency, I can perhaps give some useful input elsewhere.

@montymxb
Copy link
Contributor

@flovilmart that sounds like an excellent start, let's set up a getting started project and move from there. That and a general draft/direction would be most excellent. If we're doing a getting started thing it would be prudent to outline what we plan to make, and then start implementing them one step at a time.

@thomascoope any help would always be appreciated. I don't believe we have a ton of PR people currently, I've written a few blog posts but that's about the extent there. We live close to the code though ;), just need to expand our community relations as we address things.

@agwl-saurabh
Copy link

The problem with new user is how he is entering to the parse server . as per my understanding git is the starting point for new user so please sync this with http://docs.parseplatform.org/rest/guide/
when I started I tried to find "parse server keyword" on google and got github link . not the "http://docs.parseplatform.org/parse-server/guide" and i always followed the option which was given on github and never tried to read "http://docs.parseplatform.org/parse-server/guide" from the starting and this is wt i think normally all user do they just start from the point which they got first . so i think we should have similar steps on both documents and github. I never know "bootstrap.sh script" exit until i read this thread.

I think people will start parse with the top server provider(or the server provider they ever used) i think they are not interested in locale setup as locale setup as they can't connect to mobile. as even if you are able to set up parse server locally in one click is there way to connect to mobile.

@tomcooperandco
Copy link

Have there been any advancements on this?

@flovilmart
Copy link
Contributor Author

Not yet, I got tangled in the next release of the iOS SDK

@flovilmart
Copy link
Contributor Author

I've started some work around using npx and creating a @parse/init module.

This module would create a new parse-server configuration (appId, appName, masterKey, databaseURL etc...) what do you guys think?

#4960

@stale
Copy link

stale bot commented Sep 29, 2018

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants