N
N
Nikolai Kozlov2019-03-13 16:37:48
MongoDB
Nikolai Kozlov, 2019-03-13 16:37:48

Will my decision be correct for a large project?

We are writing a fairly large project. I suggested using the following solution:

Client (browser)
↑↓ post-, get- requests
example.com (PHP + Laravel) - responsible for validation, data rendering, response to the client
↑↓ curl request
api.example.com (Node.js + Express) - responsible for database queries
↑↓ database query
Database Server (MongoDB)

I'll justify why I wanted it this way:
  1. We can't use a SPA application, because Server Side Rendering is important, the basic functionality should be available when js is disabled on the client
  2. I'm pretty good at the frontend and can't trust this role to my partner. I will have to worry a lot about template rendering, validation, text editing, design, errors, etc. I'm only familiar with PHP development, but I don't understand anything about Node.JS and NoSQL database
  3. My partner is good at creating API services, creating mobile applications, but he doesn't understand anything about UI/UX, visual logic, layout and grammar of the Russian language :)
  4. MongoDB was chosen because of the INFINITELY (well known!) growing data structure.
  5. The Laravel + PHP layer should be responsible for the web application. In addition, there will be mobile applications, as well as other services that must work with the core (in our case, Node.js). That is, presumably we want to separate the core from applications, to which it will be possible to connect an infinite number of services.

To what extent is this the right decision? Will there be any disadvantages in terms of speed and performance, at least at first?

Answer the question

In order to leave comments, you need to log in

3 answer(s)
B
Boris Korobkov, 2019-03-13
@BorisKorobkov

Laravel (like pure PHP) is perfectly able to work with the database.
API is not needed, unnecessary complication.
Client (browser)
↑↓ post-, get-requests
example.com (any PL and framework of your choice) - responsible for validation, queries to the database, rendering data, response to the client
↑↓ request to the
database Database Server (any database on your choice)

S
Sanes, 2019-03-13
@Sanes

basic functionality should be available when js is disabled on the client

Unreasonable extras. expenses.

R
Robur, 2019-03-13
@Robur

You need to prioritize. You obviously have a priority - to connect Vasya at all costs, so what is right or wrong in your case is not a technical question - you need to tag about startups and discuss the interaction and benefits of founders, how to build relationships and all that.
According to the scheme itself, nodejs is really not needed - spend a couple of days reading how to work with the database from laravel - it will be less effort than screwing Vasino's external api there and making it all work fine. Apparently, you have already taken over everything else, so Vasya's usefulness for the project is extremely doubtful.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question