mardi 14 août 2018

Building a community website, how to get started

I want to design and develop a big community website. I am new to this so I've done some research, but i could sure use some help to clear up the process. I preferably want to build the whole thing from scratch (for performance reasons and to gain some skills) and I started on some design drafts. I want to start off with just a small MVP which include some news articles, a profile page and a message board (also registration and login of course).

What I would like to do is build a back end GET IMAGE layer and REST API layer (in PHP7 / MySQL, because I learned these in the past (PHP4)) laying on top of a security layer (to make sure resources and data will not be possible to get without permission).

I think I would like to build the front end in HTML, vanilla JS, and get some help from SASS. To reduce the complexity of the web-application I want to make use of Web components. I looked into Angular, React and Vue. Vue seemed most promising, however, native web components support will be ready soon (https://developer.mozilla.org/en-US/docs/Web/Web_Components#Browser_support) and my project won't be finished any time soon.

I'm also thinking about compiling every separate page (profile, message board, articles) into a separate html / js bundle so i can keep the footprint of every separate page as small as possible. The reason I don't want a SPA is that I think that the total filesize will just get too big when I'm expanding the website. I want to use webpack for this. Probably with multiple entry/output points?

I've looked into the MVC model and it feels right to separate logic / design in this way. I have a heard time to separate it though. It seems logical to me to use PHP for the Controller (Routing, API) and in JS (Site Events,API Calls), The View (Templates) in JS/HTML, and the Model in the DB?

I don't have any corporate experience with building bigger projects. - What technology is normally used. - What do you think about my structure? - Is this the right way to go and what can I improve? - Do you have any real-world examples? - Any recommendations are welcome




Aucun commentaire:

Enregistrer un commentaire