Islamic University Of Technology·
Needs advice
on
ExpressJSExpressJS
and
LaravelLaravel

This is going to be my first time building an API. The project is pretty big has lots of modules. So it's going to have a pretty big database. Also, it's going to be scalable that I might have to add more modules in the future. Has all the basic features e.g auth, logging, auditing, SMTP, FTP, pdf generation, live notification, etc. As I have not yet used any of the backend frameworks so I m not quite sure with which framework I should start. I have worked with the frontend framework e.g React. I have knowledge of Javascript. I have seen some tutorials making APIs with node js/express. Also have seen some tutorial of Laravel. Both of them seemed quite nice to me. Laravel has almost everything out of the box. Whereas with express everything comes from packages thus for it makes express really fast and lightweight. Also, I am familiar with using npm packages. Also, should I go with SQL or NoSQL?

Database: https://dbdiagram.io/d/5e3a5b5c9e76504e0ef10bea Not complete. But that's what it looks like now.

I would really appreciate any kind of suggestions or insight from your perspective. Thank you.

READ LESS
3 upvotes·17.5K views
Replies (4)
Recommends
on
ExpressJS
in

I can't speak for Laravel (I don't know it --- See why I dont in Kathy Sierra's Keynote below).

REAL SITUATION: Sucessful projects live a long time. Time on the initial build will be eclipsed by the time spent later. Be kind to your future self, the future team.

TWO SURVIVAL STRATEGIES:

  1. Are things loosely coupled? (not married to one vendor) -- What is the size of tech X's communtiy? is it BIG? Is the language controlled by one dictator for life? Are pieces controlled by one or two vendors? otherwise your technology pillars could go away... Ask Google/Android about Java Licensing. -- Can parts and pieces can be refactored or swapped out with a minimal a ripple affect. example: can a few simple functions be changed to start using GraphQL queries instead of SQL directly?

  2. Cognative Load --- What does it take to understand the code later? will I or my team like looking at / working with the code days, weeks, years from now? Will it be hard to find people later that can work with this stack?

See Kathy Sierra's Keynote "Making Badass Developers" https://www.youtube.com/watch?v=FKTxC9pl-WM

MY Tech Choices My teamI slowly chose to focus on one tech at a time, got comfortable and added as needed. NodeJS, then Express, then React. Later adding OneAuth and LetsEncrypt. We used to hide the database behind a few simple functions from express, I now use GraphQL from inside express to talk to PostGres (SQL). I hope the choices I've made can be corrected later with the offending technology swapped out.

BATTLE SCARS My team started one project in 1989 and it still sees daily use (collecting data, analyzing data). At one time it ran on OS/2 till Microsoft and IBM had a falling out -- WinNT was the result. Pieces written in C still live today (although not Borland C). Custom logic ISA slot cards are gone. Java/Swing compnents has been replaced with JavaScipt/Node/Express/React. Serial cables have been replaced with eithernet cables. Linux towers will soon be replaced with RaspberryPis. Incandecient special shaped fillament bulbs and switches replaced with HDMI touch screens.

Your choices are exciting and it is a wonderful experience to start fresh with so many choices. Future proof your project: keep the tech list short and loosely coupled. Allow yourself to pivot mid-development

READ MORE
4 upvotes·17.2K views
View all (4)
Avatar of Martin Jackson