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

📙 Examples section with end to end tutorial #913

Closed
Moumouls opened this issue Dec 25, 2022 · 6 comments
Closed

📙 Examples section with end to end tutorial #913

Moumouls opened this issue Dec 25, 2022 · 6 comments

Comments

@Moumouls
Copy link
Member

Link to section:
Please provide a specific link to the section in question. In the docs, you can click on a heading and then copy the relative link from the address bar.

What is the issue?

Parse has really powerful feature that can be used together to provide a strong, flexible, and scalable backend service. Parse has also many individual "generic" concepts like, Auth, (ACL,CLP), Defined Schema, Cloud functions. These features can sounds really generic and it can be hard for new Parse developers to see and use the full power of parse on their projects.

Can you propose a solution?

Many Cloud providers/Cloud solutions (ex: Google Cloud, AWS, Next, Firebase) has a strong examples sections, with end to end examples.

As a POC, i think it could be great to create a end to end example doc for a classic Todo/Trello like app using all features of Parse:

  • Auth Adapter (classic Login, and google login)
  • Cloud functions
  • Save files
  • Parse Jobs
  • ACL, CLPs
  • Defined Schemas
  • API calls with both JS SDK and GraphQL APIs
  • Live Queries
  • Deployment of a custom parse as a Docker container on a tagert platform like GCP,AWS, and more
  • Database considerations: Indexes
  • Custom login/signup flow and email setup
  • Add a secure Parse Dashboard to visualize data
  • Go serverless with MongoDB Atlas and GCP Cloud Run (when Parse will be ready)
  • Scale Parse Server horizontally
  • And more

We can easily focus to maintain the Todo App steps docs along the docs. Se we will have the "generic" example and also the ability to show practical examples.

We have some kind of work that need to be splitted in smaller chunks, and we can also use Chat GPT to write huge amount of these docs.

Chat GPT is kind of revolution to generate docs, Parse is sufficiently known to be able to generate some (almost) valid content with GPT.

example below

Capture d’écran 2022-12-25 à 11 58 54

Capture d’écran 2022-12-25 à 12 01 26

I think we can give it a try !

@Moumouls
Copy link
Member Author

Moumouls commented Dec 25, 2022

@mtrezza @dblythy tell me what you think 👍

@mtrezza
Copy link
Member

mtrezza commented Dec 25, 2022

I think a E2E tutorial is always a great way for new developers to learn code by coding. This works so well because a tutorial leaves out many detailed stuff so you get to results quickly, which is an important motivational factor. A good structure for a tutorial may be a series that builds upon the previous chapter, gradually extending the capabilities of the example app. Another benefit of this would be that even if steam runs out along the way and contribution slows down, the produced material would still be of value and can stand as tutorials.

We cannot use ChatGPT to create docs because it's a copyright minefield in uncharted legal territory. We don't know the source of the generated content and how it can be used. Basing official documents on that would be an unquantifiable risk.

Aside from that, I don't think that ChatGPT would be a useful tool for generating a tutorial. I've been using it for a while now and its answers are rather generic, while a tutorial is focused on custom code and explanations for a specific example app.

@Moumouls
Copy link
Member Author

thanks @mtrezza for your feedback.

A good structure for a tutorial may be a series that builds upon the previous chapter, gradually extending the capabilities of the example app.

Exactly what i'm thinking about.

I'm in favor of a tutorail covering at the same time JS SDK, REST API and GraphQL API.
We can use https://github.com/Ovski4/jekyll-tabs to provide detailed variations for each API.

@mtrezza to be able to prepare the E2E tutorial structure, can you open on this repo a Project. It will be easier to collaborate.

I think a "Trello" like app could be a good candidate.

The app description:

Trello like app, support login via email/password, A user can create a Team. Each team can have 20 boards max. An admin Team user can invite other users to the team or to a specific board. A board has default and custom columns. Each colum has tasks with name, description, comments, and files. The app support realtime task moves. The app is packaged in a Docker container, deployed on a container cloud platforme (Azure container/GCP Cloud run/AWS fargate).
The app should have tests with Jest to cover the business logic, and ensure that the tutorial work. The app only cover api calls.

The final repo with all tests (for each API (GQL, SDK, REST)) should be hosted on parse-community/trello-like-app

Basic chapters i see:

  • Setup the project install and run parse-server with NodeJS
  • Create the DB schema with defined schema or API (indexes also)
  • Signup a user and get the current user (we will cover only email/password first)
  • The user create his first Team (security included with ACL,CLP)
  • The user create his first board, (cloud functions that automatically create column), first task (security included with ACL,CLP)
  • The user add a comment on his first task, move the task in another column, add a file to the task
  • The user invite another user to join the Team, and invite another user to only join a board
  • Add realtime task moves to the app
  • Remove a user from the Team and the board
  • Install Jest and cover features of the app.
  • Package the app in a container and ship it to a container service

Later:

  • Google, third party logins, MFA
  • Implement a little search engine (tokenized string array based on task name)
  • Frontend installs (Parse JS SDK, GraphQL (appollo hooks), Rest (react query)) ?

@mtrezza
Copy link
Member

mtrezza commented Dec 26, 2022

Sure, I've created https://github.com/orgs/parse-community/projects/10/ with you as the only member with write access; feel free to invite others as needed.

@mtrezza
Copy link
Member

mtrezza commented Dec 28, 2022

Can we close this, since the tutorial has its own repository and project to track its development?

@Moumouls
Copy link
Member Author

Yes @mtrezza, we will see later how to implement e2e docs into the main doc repo

@mtrezza mtrezza closed this as completed Dec 28, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants