The wall called Dynamic Web Application Projects: How to move forward?


Hi everyone,

i’m done with the Front End program, skipped the Data Visualization because no content and Back End was tempting. Now I’m supposed to build the voting app but I have no idea from where to start. FCC never has that much hand-holding to begin with but this time around I don’t even know what to google.

Should I explore topics like application design & planning?
Should I go back to Data Visualization? Is this happening bacause I skipped Data Visualization? I should have done that right?
Or is it the knowledge from React, Angular and templating engine that I’m lacking

So what have you done at this point?

ps: i started this spring with the CS50 course from edx and then strictly followed freecodecamp curriculum. That’s pretty much all I’ve learned


I hit the same wall:

  • flew thru the Front End certification
  • skipped Data Visualization like you
  • flew thru the Back End stuff (Git, Node, Mongbo etc).
  • started the Voting App
  • started it again
  • took a couple weeks off
  • found other ways to learn about React
  • started the Voting App yet again
  • kept thinking of all the ways I could roll the React tutorials I was learning elsewhere with Clementine.js
  • got terribly frustrated and walked away

Then I started the Voting App yet again. This time I got the Clemintine.js boiler plate working and started looking at how it was working and realized I needed to do this project in the spirit of the boilerplate and stay with extending the current server.js for my needs, modifying the Mongoos Schema etc.

I am still working on it. Finished the server api support. Next I will start on the front end and write that in Vanilla JS…maybe jQuery? I will save React for another project.

I thought you would like to know you are not alone.

(BTW: this is really my first post to the forums)


The current backend course kinda sucks (not gonna lie) and if you don’t know what you are doing ahead of time it’s really hard to proceed. The content on provides a better introduction to backend stuff. Beyond that check out it’s a lot of reading but it’ll help you get started with stuff :slight_smile:


Just wanted to add, I am in the exact same situation as well. I got cloud9 setup with clementine.js, but because I didn’t know where to start I’ve been mostly procrastinating and looking at this forum rather than getting anything done with the app:sweat_smile:

Then I saw this post and it made me feel better and got me a bit motivated so thank you!
I’m going to start just messing around with the clementine.js boilerplate and tweak it as alpiepho is doing.


Thanks for reaching out.

I guess I’ll learn from your story and spare myself the frustration by not venturing out there chasing React or other resources just yet.
For now trying to really understand Clementine.js seems good.


Don’t give up on React, from the little I have learned, it is so powerful. There is still a lot to learn from the Voting App project…Mongo, Mongoose, Postman (to test the API), even some automation setup like Foreman and Nodemon.

I am going to give a link for a Medium article that I have used for both the Foreman/Nodemon setup and reference for my own Mongo queries. The tutorial is mainly about React, but I used it for these other areas:

Good luck!


Thanks and see you guys around


Good grief I am up against the same wall!!

I mess around with the Clementine boiler plate for a week or so, manage to get some stuff working, get completely bewildered by a bunch of other stuff, take three weeks off to build personal or work related apps just to make myself feel better, then reattempt.

Rinse, repeat. Getting nowhere slowly.

Does anybody know why the heck var clickProjection = { ‘_id’: false }; is getting totally ignored and the _id value keeps getting returned in /api/clicks???

Here is my code so far:

'use strict';

function clickHandler (db) {

var clicks = db.collection('clicks');

this.getClicks = function (req, res) { // getClicks finds and returns the number of clicks in the 'clicks' collection

	var clickProjection = { '_id': false }; // we don't want the default _id value included in the results

	clicks.findOne({}, clickProjection, function (err, result) { 
		if (err) {
		   console.log('Hey, the findOne() threw an error!');
			throw err;

		if (result) {
      } else {
      clicks.insert({ 'clicks': 0 }, function (err) {
          if (err) {
              throw err;

              clicks.findOne({}, clickProjection, function (err, doc) {
                 if (err) {
                    throw err;


   module.exports = clickHandler;