gothinkster / realworld

"The mother of all demo apps" — Exemplary fullstack Medium.com clone powered by React, Angular, Node, Django, and many more
https://www.realworld.how/
MIT License
80.26k stars 7.3k forks source link

Project Maintenance Help #578

Closed Cameron-C-Chapman closed 3 years ago

Cameron-C-Chapman commented 3 years ago

Most of the maintainers of this project have slowly gotten busy with other things and haven't been able to keep up as of late (this includes and is really referring to myself).

I still think this project can provide a lot of value to people so it's a bit of a shame to see the issues piling up.

If we can identify a few people to start helping with maintenance we'd be happy to enable that.

Anyone interested in helping? If we get a few people willing to help we could reach out to @EricSimons about granting access.

mvila commented 3 years ago

Thanks @Cameron-C-Chapman for trying to keep the ship afloat!

I was thinking about building a website to list the RealWorld example apps and simplify the submission/review process. Then, this repo could just contain the specs and refer to the website for the implementations.

Do you think it can help?

Cameron-C-Chapman commented 3 years ago

@mvila I do think with as many repos as there are now and could be a year from now, a website to navigate them would be a better experience than maintaining the README the way we do now.

@anishkny has put some really slick automation around updating the README based on what's in the /etc/backend-repos.yml and /etc/frontend-repos.yml files so it's not totally manual.

I think a website that was able to reference those files to list out the projects, and use the Github api to check the issues for certain labels to see what frameworks were being worked on with some simple search functionality could be really cool.

I would suggest a generated static site maintained in this repo. Maybe gatsby or something along those lines?

mvila commented 3 years ago

@Cameron-C-Chapman I think that a non-negligible part of the pain point is the current PRs/Issues submission process and it would be better to replace it with a submission form/approval mechanism on the website.

So it would be more a web app than a static website and I was thinking to build it with my own full-stack development solution called Layr.

I think I will build it in any case because it gives me an opportunity to dog food Layr.

If you don't totally disagree with this plan, can I come back to you once I have a first version?

flexsurfer commented 3 years ago

submission form/approval mechanism on the website.

i believe approval should be automated because it's tricky to review and approve different frameworks by the same group of people, so probably, the author of PR could ask framework's community to review his PR and add stars , so if repo in PR has > N stars we automatically approve it ?

mvila commented 3 years ago

@flexsurfer I agree with you. Reviewing is tough, but automatically approving based on a number of stars does not seem ideal to me.

I think it is better to keep the approval process manual, but make it straightforward. It would not be about assessing the quality of a repo. It would just be about verifying that a repo does what it claims to do.

Then, the repos are ordered by the number of stars on the website and users can choose by themselves.

Cameron-C-Chapman commented 3 years ago

When I started getting involved our goal was to try to get some members of whatever frameworks community to kind of review and approve the approaches. For things like React, Angular, etc that went pretty well, but for more specific stacks and combinations of technologies or more less known frameworks that was harder to do.

That kind of evolved into a practice of requiring the automated api tests would pass for backends, and a basic walkthrough of the setup and start instructions worked, and we were able to run the app. This is pretty time consuming though, as a lot of the time this requires setting up new environments on your machine to test out a new language/framework.

I actually think maintaining the api tests, and adding some front end integration tests via cypress or something like that would go a long way. Then reviewing and approving a framework could be confirming that the automated tests pass. This is a burden on the developers though, as it's another requirement to implement.

@mvila If you want to go ahead and work on a real world site I don't see an issue with that. @EricSimons would probably need to be involved in any final approvals but we're open to all contributions 😄

@flexsurfer I'm not sure about using stars as the approval gateway. I get the sentiment, that stars can be an indicator that the community likes it, but some of the implementations are smaller frameworks or specific use cases, that might be a great implementation but wouldn't garner many stars necessarily. I think things like standard automated test suites or standard docker setups might be more inclusive (albeit more technically difficult).

mvila commented 3 years ago

Thanks, @Cameron-C-Chapman! I'm on it! 😄

mvila commented 3 years ago

I just finished an MVP of the website.

It is deployed at this (temporary) address: https://realworld.mvila.me/

The codebase is available here: https://github.com/mvila/realworld-website

I added all the implementations that are listed on the RealWorld repository and anyone can submit a new implementation.

When an implementation is submitted, it must be approved by an administrator (only me for now) before being publicly listed.

There is still work to be done. Here's what I have in mind:

Please tell me what you guys think. 😀

Cameron-C-Chapman commented 3 years ago

This looks great @mvila!

We'd just have to work out the hosting/domain name issue but that shouldn't be a big deal.

A couple of things you might consider:

Great progress! I don't see why we couldn't start working on getting approval for this and working out the details of transitioning from the README based list to this site (maybe we keep both but the site should be highlighted in my opinion).

mvila commented 3 years ago

This looks great @mvila!

Thanks, @Cameron-C-Chapman!

Just a free text search for implementations (maybe that's what you mean by filter by language)

Since for a given language, there are not so many implementations sharing the same library/framework, I was thinking more of a way to quickly select a language. But maybe you are right, a text search might be better. I have to experiment.

There are also some mobile implementations on the site that aren't listed as an option.

I thought about adding a "Mobile" category and finally gave up the idea. The problem is that a mobile implementation is technically a frontend. So to clearly distinguish the different categories we should have "Web frontend", "Mobile frontend", "Backend", "Fullstack with web frontend", "Fullstack with mobile frontend". It doesn't work.

So I ended up listing the mobile implementations in the "Frontend" category. Maybe I could add a little "Mobile" label to distinguish the mobile frontends. Again, I have to experiment to see if it works.

mvila commented 3 years ago

@Cameron-C-Chapman I added a "language filter" sidebar and a "mobile subcategory" that is shown as a colored label. Could you please have a look and tell me what you think?

Edit: I just added a hero section on the home page.

mvila commented 3 years ago

@Cameron-C-Chapman For me, the current website is "good enough" to be exposed publicly. If you agree with that, shall we contact @EricSimons?

About hosting, it's completely serverless, and therefore virtually free. So I can take care of it. The only thing left to do is to point realworld.io to it. I see that you are using Cloudflare CDN for demo.realworld.io. The same could be done for realworld.io.

Edit: About the GitHub repo of the website, as long as I keep write access, I can transfer it to the Thinkster organization.

flexsurfer commented 3 years ago

hey @mvila great job on the website, I'm just wondering how does it solve this project maintenance problem?

flexsurfer commented 3 years ago

probably option for showing pending (in review) submissions could help, for example, a label could be used, similar to the mobile image

mvila commented 3 years ago

@flexsurfer, the plan is to make the approval process a lot lighter.

It would not be about assessing the quality of an implementation, it would simply be about having a quick look at the code to make sure that an implementation does what it claims to do.

So reviewing an implementation should take less than 3 minutes and I think I can take care of this task.

Since the implementations would be quickly reviewed, I don't think it is necessary to display them publicly before approval.

Cameron-C-Chapman commented 3 years ago

@mvila - I talked to @joeeames last night and he's going to be your point of contact for a domain redirect.

He also mentioned that him and @anishkny are working on trying to get some help with maintenance of the project. We'll need to coordinate with him, and when the redirect is ready, update the readme with the details.

mvila commented 3 years ago

Thanks, @Cameron-C-Chapman! I will contact @joeeames directly.

joeeames commented 3 years ago

what do I need to do?

On Wed, Dec 16, 2020 at 4:04 PM Manuel Vila notifications@github.com wrote:

Thanks, @Cameron-C-Chapman https://github.com/Cameron-C-Chapman! I will contact @joeeames https://github.com/joeeames directly.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/gothinkster/realworld/issues/578#issuecomment-747093495, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAIFZHKVDJV4WUFVZGLY4JLSVE4GZANCNFSM4UACVGSQ .

-- Joe Eames CEO, Thinkster.io

championswimmer commented 3 years ago

I have added a new mobile submission for Android/Kotlin

Who is taking care of new submissions for now?

https://github.com/gothinkster/realworld/pull/584/files

mvila commented 3 years ago

@championswimmer I approved your submission. Your implementation is now listed on the (not yet official) website.

flexsurfer commented 3 years ago

btw if you need any help with review or maintaince. I'm ready to help

geromegrignon commented 3 years ago

@mvila It might be a good idea to add a checklist on the submission form with the requirements. Like having tests to avoid having to setup new environments as Cameron said or to have a complete Readme with instructions (missing on several submissions).

mvila commented 3 years ago

@geromegrignon A checklist on the submission form might be good but we then have to decide what to put on it. For example, if my understanding is correct, tests are recommended but not required. Most frontend implementations don't provide any test and most backend implementations just provide the same Postman collection.