I think Clementine is a wonderful starting place for the Full Stack Apps but many users are finding it to be unnecessary and unhelpful for the API projects. They are getting tripped up on things like authentication and MVC patterns, which aren't necessary for the API Projects.
Therefore, I'd like to suggest that the Clementine generator instructions are moved to a new step preceding the Full Stack projects. For the API Projects, either create a different boilerplate or provide none at all.
Maybe some instructions like this instead. This is what I've been recommending when campers come confused about Clementine for the API projects.
npm init in the console and follow the prompts to set up your package.json file (most things you can leave as default)npm install express --save to install express.js and save it as a dependency for your project..gitignore file to your directory which ignores the node_modules foldergit init to initialize this as a git repositoryserver.jsI was very confused on how to start after the Clementine tutorial, so jondcoleman's suggestion helped out a lot, so I think it would be useful if you included something like this before Clementine. Thumbs up :+1:
+1
Additionally, I didn't find Clementine.js a good starting point for the dynamic web projects. Its directory structure is heavily based on Angular. As we are supposed to develop the frontend component with React, a React specific version would be much more useful.
I agree with this as well. I got very confused when first encountering Clementine for API projects due to unknown components (Passport and Mongoose). I ended up stripping pretty much everything and working from server.js
+1 I was trying to figure out where I was going wrong before I was pointed in the direction of "modularization" which hadn't yet been really covered. Once I realized I could run the program in the server file, I was squared away. Not necessary to use Clementine.
cc/ @FreeCodeCamp/issue-moderators
I am in favor. But lets hear it from others.
I agree with @raisedadead, I am also in favor :+1:
I completely agree. By that point in the curriculum students should be familiar with Express and that is the only thing needed to start cracking on those projects.
I'm going to give this a go. There's been rumblings of switching to HyperDev. Has that been decided? If so I can hit two birds with one stone and recommend that for the API projects.
Bumping up for comments.
/to @BerkeleyTrue @QuincyLarson and /cc @FreeCodeCamp/issue-moderators
@raisedadead, I think it's a good idea to move... However, HyperDev is still limited in options, whereas c9 is a full linux box. HyperDev is defiantly easier to use, and is cleaner and more intuitive.
IMO c9 makes more sense to teach with but I see the advantage of HyperDev.
For the API challenges, we could definitely consider HyperDev. It is much, much easier to get started with, and replaces both c9.io (to a large extent) and Heroku (which requires a credit card and excludes a LOT of campers).
If we are going to move away from using Clementine.js anyway (which I agree is too heavy for the API challenges), I vote we move to HyperDev.
We can link to wiki articles that show campers how to use c9.io/Heroku, or dev locally. But HyperDev seems to be a sane default for all of the back end challenges.
@jondcoleman thank you for taking the initiative to submit the PR. What do you think about hyperdev?
Thanks @QuincyLarson
I feel torn about HyperDev - the abstraction certainly makes it easier. There are a few disadvantages to HyperDev in my mind:
npm install x --save when most guides out there will describe that as the way to install a package.My opinion would be to stay with c9 for the dynamic apps. For API projects I would lean towards sticking with c9 because the workflow is more "standard" but think it's less of an obstacle there.
@jondcoleman thanks a lot for this research, and you are absolutely right, we should not be moving to something, that needs no standard ways of doing stuff. This would confuse beginners, which ironically is the opening post in this thread.
Let's just stick to removing the ClementineJS part and simplify the instructions as suited best with C9.
Thanks a lot, once again.
Most helpful comment
cc/ @FreeCodeCamp/issue-moderators