freeCodeCamp / freeCodeCamp

freeCodeCamp.org's open-source codebase and curriculum. Learn to code for free.
http://contribute.freecodecamp.org/intro
BSD 3-Clause "New" or "Revised" License
392.66k stars 36.11k forks source link

Migrate to Gitpod #53470

Closed scissorsneedfoodtoo closed 4 months ago

scissorsneedfoodtoo commented 5 months ago

Learn updates

This can be a single PR that does the following:

- [x] Back End Development and APIs Certification (https://github.com/freeCodeCamp/freeCodeCamp/pull/53496)
- [x] Quality Assurance (https://github.com/freeCodeCamp/freeCodeCamp/pull/53472)
- [x] Data Analysis with Python (https://github.com/freeCodeCamp/freeCodeCamp/pull/53582)
- [x] Information Security (https://github.com/freeCodeCamp/freeCodeCamp/pull/53515)
- [x] Machine Learning with Python (https://github.com/freeCodeCamp/freeCodeCamp/pull/53584)

Boilerplate updates

These should not be merged until just after the updates for Learn are live

Each PR below should:

Back End Development and APIs

Quality Assurance

Data Analysis with Python

Information Security

Machine Learning with Python

Create a forum guide post with a Gitpod tutorial

Current draft here: https://forum.freecodecamp.org/t/how-to-use-gitpod-in-the-curriculum/668669

Other Tasks

Will Close

Once all the changes here have been merged / deployed, the following issues can be closed:

ShaunSHamilton commented 5 months ago

Are we going to do the same thing the RDB does by only showing a note at the top of the superblock page linking to the guide post?

image
scissorsneedfoodtoo commented 5 months ago

@ShaunSHamilton, yes, I think it would be a good idea to link to the forum guide post at the top of each superblock. That should answer some FAQs that learners have about working with Gitpod, and will hopefully cut down on the number of new forum posts that get opened up.

ShaunSHamilton commented 5 months ago

For Discussion

Seeing as many cloud IDE providers now use ephemeral apps/links, we will not require the solution link to be in the database. As such, the github link will be required.

That said, there might/will still be some Campers who want their solution links to be visible on their certifications, because they have hosted their apps somewhere permanent.

So, questions: a) Are we going to allow Campers to save their solution links to the db (as we do now)? b) If so, how are we going to prevent ephemeral links from being submitted? c) If so, how are we going to make it clear to Campers not to submit ephemeral links?

moT01 commented 5 months ago

My initial thought is that we should still allow users to submit links to their demo projects. The certs/settings page can have links to their "solution" and "source", like we do with other projects (see the projects at the bottom). Yes, mine are broken - but it's more showy on their profile than a link to code - and if they want to keep their projects working, it's on them. Maybe we could add an option to hide the demo projects on those pages if they don't want to keep it working. I don't see the downside to saving the solutions.

I don't think we should try to control what type of links campers submit, seems too finicky. I guess we could check that it's live at the time of submission, but trying to block certain domains or whatever... feels like a whack-a-mole type thing - those services may change the way they do things. I'm not sure we need to communicate much to them either - maybe a note or something. It should be on them to submit URL's that are live and keep them working if they want them to be visible - I'm quite sure they can go submit the solution again with a new URL if they want to update it to a new URL as well.

One other thing I could mention is that there are other places than github to host code. Are we going to require it be a Github URL or should we allow whatever URL? The RDB allows any URL - I think that's what I would vote for.

ShaunSHamilton commented 5 months ago

I guess we could check that it's live at the time of submission

Right. We already do, and have to do, this. The tests run against a live app.

trying to block certain domains or whatever... feels like a whack-a-mole type thing - those services may change the way they do things

Why would we block domains? At most (what we already do), we give a warning/note to Campers when they try to paste known "editor" urls in the "live app" field, because that is a common misunderstanding Campers have - which link to submit for the tests.

Are we going to require it be a Github URL or should we allow whatever URL?

We are (as we already do) going to allow any url. I just used this language, because that is the variable name in the code: https://github.com/freeCodeCamp/freeCodeCamp/blob/1972f39b6888cebfa15bdabebb0e9ebb12341777/client/src/templates/Challenges/projects/solution-form.tsx#L52-L55

ShaunSHamilton commented 5 months ago

The question is: If we store the solutionLink in the db, are we ok with most links pointing to non-existent pages on certifications/profiles?

moT01 commented 5 months ago

Why would we block domains?

I'm not sure why we would block domains - I guess my thought was that, we know gitpod URL's stop working so we wouldn't allow them or something.

If we store the solutionLink in the db, are we ok with most links pointing to non-existent pages on certifications/profiles?

Yea, I see the problem. I like the idea of having the ability to submit and show the solutions on my profile, and it makes sense - but if most solutions are going to end up not working, then maybe it's not worth it. I still don't see a whole lot of downside to storing the solutions - and we can choose to not display them on the profiles if we want. I dunno, maybe it would be confusing for campers to submit a URL and then it doesn't get displayed anywhere. I'm kind of in the middle, but I think I would vote to continue storing the solutions and including the links on the profile.

ShaunSHamilton commented 5 months ago

and we can choose to not display them on the profiles if we want.

How would this be decided? A checkbox next to the submission field that says:

[ ] Save and display my app URL on my profile. NOTE: If your app is not permanently hosted, this will cause your profile/certifications to have dead links.

moT01 commented 5 months ago

In that instance, "we" meant freeCodeCamp - we can remove the display of the solution links from that component for everyone. But yea, an alternative could be to include a checkbox like that.

ShaunSHamilton commented 5 months ago

What about the take-home-projects block? Are we going to leave it as is? Or, also require the source code?

moT01 commented 5 months ago

What about the take-home-projects block? Are we going to leave it as is? Or, also require the source code?

I'm not sure - they're definitely not as important at the moment. I would say probably yes for the full stack projects. The rest of them can be completed on codepen though - I don't think we need a github link for those. They could probably be left how they are for now, but we could probably convert them to use the multifile editor?

ShaunSHamilton commented 5 months ago

This should close: https://github.com/freeCodeCamp/freeCodeCamp/issues/52455