Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Learning Resources

Lloyd Stevens
Lloyd Stevens
10,934 Points

What should I learn? - CRUD Web Application

Hi all,

I am developing a student assignment tracker CRUD web application for my Masters Degree Thesis Project.


Brief

In short: Students complete courses with a number of assignments that are based on a number of units. Each unit has a set of criteria that make up a Pass Merit or Distinction to then give an overall grade for the unit. The group of units together will convert to a number that then gives the student a relevant Pass Merit or Distinction overall. The system is relatively simple in that it will record student grades for each criteria with simple feedback and then calculate the corresponding overall unit grade and then course grade.


Learning path

I have been working on the Full Stack Javascript course for some time and having been coping well with the material. I am now however very conscious of time left (Sept 15 deadline) and really need to get developing as quickly as possible. I am at a point where I am very good with HTML / CSS. Comfortable with JS and JQuery. Have a decent understanding of Javascript OO although have yet to put this into a self developed project.


Progress

I have setup the front end in bootstrap already.

Initially my plan was to then finish learning about Node.JS, Express and Mongo DB but the time it would take to cover the rest of the full stack track would take me up to end of July, leaving me with only around 3 weeks full time development time, due to work commitments, which I don't think will be enough.


Prior Knowledge

I have used PHP and MySQL before (albeit 17 years ago) but it would require some further learning. I do have a good knowledge of DB design and procedural programming ( I am a computer science teacher at a secondary school). <i>See more detail at the bottom</i>


Advise Required

Can anyone advise if there are areas I should concentrate on? Should I continue on the JS Full stack track? Once I cover this would I be able to create an MVP quickly? Do I need to do the NPM/GULP lessons?

Should I move to a different route e.g. PHP / MySQL? Is there a project example I can use to get an MVP setup quickly through refactoring code perhaps? I am pretty good at using documentation and refactoring code and have a strong knowledge of Procedural Programming.

Whilst I would love to learn in depth at this point I just want to get the MVP done and out the way for the project so that I can then spend more time after September learning / refining this properly

Many thanks for your help

Lloyd


Knowledge

Excellent understanding of

  • HTML
  • CSS
  • JQuery
  • Bootstrap

I have a good knowledge of

  • Vanilla Javascript
  • Relational Database Design
  • Procedural Programming

Some understanding of

  • SQL
  • OO Javascript
  • PHP
  • MySQL

Progress so far

  • I have setup a basic front end using Bootstrap to speed up development.

3 Answers

Brendan Whiting
seal-mask
.a{fill-rule:evenodd;}techdegree seal-36
Brendan Whiting
Front End Web Development Techdegree Graduate 84,738 Points

Would it be frowned upon to user a service like Firebase? It’s a great tool to get you set up with authentication, data storage, deploy your static files etc. It could be a huge time saver if you want to focus more on the front end experience. There are tutorials like this one on setting up CRUD operations in vanilla JS.

If you want or need to build your own full stack backend, you can honestly do it in many languages or frameworks. PHP/Laravel is going to work. Node/Express is going to work. There are minor trade-offs but for a CRUD app they're all fine. If time is of the essence, it’s probably good to pick one that you’re already a bit familiar with.

Lloyd Stevens
Lloyd Stevens
10,934 Points

Brendan, thanks.

I will look into firebase. Would this allow me to setup the database and all the CRUD operations easily?

If not could you advise on a the key courses to follow in the JavaScript Full Stack track? I need to streamline so not sure I need to follow everything e.g. the node track has NPM and GULP

Thanks Lloyd

Lloyd Stevens
Lloyd Stevens
10,934 Points

Ok, so I have found your workshops on firebase and I think this is the way forward, thank you so much. It will really help me in the short term!! Much appreciated :)

https://teamtreehouse.com/library/getting-started-with-firebase

Brendan Whiting
seal-mask
.a{fill-rule:evenodd;}techdegree seal-36
Brendan Whiting
Front End Web Development Techdegree Graduate 84,738 Points

Yes, I think it’s fairly easy.

A few other resources for Firebase:

Firebase Slack Community

Fireship: a good youtube channel on firebase (more geared towards angular, but also has vanilla js examples):

The firebase docs themselves

FYI, firebase uses a NoSQL, object based database system. For lots of use cases this is fine (I think for your case it's probably fine). You don’t have to have a strict schema and you can easily get up and running and change stuff. Firebase also is built on top of web sockets which allow the data on your frontend and backend to sync automatically. This can be handy, but it’s a different paradigm from the way data is fetch in other apps so that might be something to keep in mind.

If you want to go the route of building your own backend with node, you could follow the full stack track but some things in there are out of date or not necessary for your project. I'd go with these:

If you want to connect to a database I’d use Sequelize. There’s a course here, but it’s a bit out of date and might be better to just go by the docs

Lloyd Stevens
Lloyd Stevens
10,934 Points

Amazing, thanks for your help :)