Where to start, for this specific project


#1

First, apologies if this is not the place for this question..

and Thanks for taking the time to answer.

I am looking for advice on which language to learn to create this specific project.

My coding skill are next to zero. I just finished Codecademy 'Introduction to JavaScript".

I understand that i will need to learn a lot before being able to build what I want. I just want to know which languages i need, to focus on.

The project: I want to create a website (web app) for a school with following features:

  1. students login in
  2. if staff can add the students emails in bulk would be better
  3. students upload files to a specific folder (class)
  4. teachers see the files and are able to download, comment on them.

Yes i know the Moodle software does this. But its something i would like to learn to build.

cheers


#2

For the front-end, the interface you have to learn HTML, CSS and JavaScript.

For storing the data, authentication and authorization you will need a database and a server-side language. You can choose PHP, Ruby, Python etc. But my advice is to use Node.js and MongoDB. You will be able to use JavaScript to code the back-end. One less language to learn :slight_smile:

Tools I would use to enhance Node.js:

  • express - to speed up development of your app with some neat routing techniques
  • mongoose - to make working with database easier
  • passport - for authentication

How I would start creating this project:

  1. Create a static page for every type of page you will have to build (maybe login page, panel for staff to add students, upload page, page of a specific file and simple list of all the files). This will give you idea of what routes and models you will have add.
  2. Install local Node.js server, MongoDB and mentioned before tools.
  3. Add all the routes using the express and for now, serve the static files created in the first step.
  4. Add needed models to the mongoose.
  5. Add some data (use mongoose) to the database - few users (staff and students), few files, few comments. Use created before models.
  6. Use passport to manage login page, test it using added before users.
  7. Make staff panel available only to the users with the staff flag.
  8. In the staff, panel make it possible to add new users.
  9. In the page showing all the files make a database connection, retrieve all files and list them.
  10. On the page of the specific file, load comments from the database.
  11. Make it possible to add new comments to the files.
  12. Make it possible to upload new files.
  13. Add some extra features.

And done. Steps 7 - 11 are very similar. You just have to learn how to work with the database, all the HTML and CSS parts you already have (from the first point).


#3

THANK YOU! So much! awesome reply! Awesome!!

in term of learning i should learn:

HTML, CSS, JavaScript, Node.js, MongoDB.
correct?
in any particular order?

Instead of Node.js and MongoDB i could learn one of these PHP, Ruby, Python or I also have to learn one of these?

And here I though JS and Ruby on Rails would be enough! :frowning: (it was my plan... ) ahahah!

Also thank you for the fast response!


#4

You're very welcome!


in term of learning i should learn:

HTML, CSS, JavaScript, Node.js, MongoDB.
correct?

You definitely need HTML, CSS and JavaScript. And you need one server-side language and one database. So it can be Node.js and MongoDB as I advised, or it can be Ruby on Rails and for example PostgreSQL, or Django (Python web-framework) and MySQL,

I advised Node.js because it uses JavaScript, so you will not have to learn any extra language, just some concepts.


in any particular order?

I would start with HTML and CSS. It will let you create static pages. Next JavaScript, it will let you add interactivity to pages and later you will use this language on the server-side. Next Node.js concepts and mongoose to work with the MongoDB database.


Instead of Node.js and MongoDB i could learn one of these PHP, Ruby, Python or I also have to learn one of these?

No, if you choose Node.js and MonoDB with mongoose you will only need JavaScript. You don't even have to use SQL (language used to work with most of the databases, for example with PostgresSQL or MySQL).


And here I though JS and Ruby on Rails would be enough! :frowning: (it was my plan... ) ahahah!

If you have any experience with Ruby then go for it, still, you will have to learn HTML and CSS. Node.js is my favourite server side environment because it has a lot of awesome tools created by the community (with passport you can create whole login system with neat authentication in few lines of code) and it's just easier for me to use one programming language to create front-end and back-end.