S
S
Sergey Mikhailenko2018-02-18 15:59:48
JavaScript
Sergey Mikhailenko, 2018-02-18 15:59:48

Which stack to choose for a non-complex multi-user SPA?

Good day!

I want to warn you right away - I am a web designer, I have a well-developed and detailed idea for my startup, which I want to create-test-optimize-launch with my own hands. Ambition is backed up by IQ and fierce perseverance, so please, if possible, do not throw stones in the spirit of "calm down, you can't do this alone", "take off your rose-colored glasses". I am one of those people who believe that "if you want to do it well, do it yourself", and therefore learning to some minimum sufficient level of the required programming language is not a disaster. Yes, and in my case there is no budget / desire for a team / investors

ESSENCE OF THE QUESTION: A
multi-user SPA SaaS application is being conceived, which globally does not have very complex functions in my understanding. At the moment, I see program logic as writing, simple arithmetic operations, and reading simple numbers (text) from the database. From distant examples, for example, Todoist, MyFitnessPal (yes, I understand that these are all big guys, but what came to mind). Those. non-content-oriented applications (in the sense of images/video/audio).
Roughly speaking, the user registers, receives his personal service (like SPA), enters and reads periodically various kinds of simple data, looks at the same simple analytics built arithmetically on this data. While I see it as "rendering the interface in html / css + a pinch of JS, connecting the front to the back-end in PHP / JS, storing everything in MySQL" (well, I optimize nginx and all sorts of caching). Well, as without this, you need a simple API for linking with mobile applications (POST / GET). Sorry, if many people are now bleeding from their eyes and brains are flowing, while I have such an idea - I am at the very beginning of the journey))
I will work step by step, studying the necessary technologies one by one. At the same time, as you understand, there is no goal to learn the entire language, to become a super-programmer. The task is to create a sufficiently clean, working and optimized product. In between work, I build a little picture in my head in terms of the desired stack, but so far there is no approved structure. I would like to understand what tools I need to implement this project, in which direction to move. I understand that the input data for the exact answer is not enough, but still.
In particular, I can't decide:
1. Make a project on "pure" LAMP + JS
2. Or take Angular (which is specifically designed for SPA and sharpened)
In my opinion, it's like learning from scratch - vanilla JS or Angular. Yes, the latter will require a general understanding of JS, but as far as I know, there is a lot of purely personal stuff (especially in the outdated AngularJS). But at the same time, it may not be necessary for my tasks. Maybe using Angular will only complicate the project, although it will save you from many potential errors... I am a supporter of minimalism, a perfectionist - so in any case I will try to make something as simple and reliable as possible (as far as I have enough brains).
For those who are completely confused in my story:
What set of elements is needed for a project of this kind, what basic architecture of the application will be optimal and is it worth considering Angular (as a replacement for JS, I guess)? And what place in the mechanics of the project should Angular take?
PS: I would be very grateful for a detailed answer, which will help me put everything right in my head and start moving in the right direction. If we find a common language with someone, then in the future I could contact you for a paid personal
consultation "to smoke"

Answer the question

In order to leave comments, you need to log in

2 answer(s)
A
Anton Spirin, 2018-02-18
@Mihailenko_SG

You can use React/Vue + Webpack + Koa + ReactNative/Weex + MongoDB/MySQL/GraphQL + Docker + Nginx + Git for your task .
1. On React , you can write both the web application itself and native mobile clients for Android and IOS using React Native . You can choose Vue - it's easier for a beginner and you can also write native mobile applications with Weex on it . Use AngularI do not advise, since the entry threshold is higher, and it is more difficult to write a competent architecture. Here you need experience or advice from an experienced developer.
2. webpack . Like it or not, you will have to deal with the assembly of the frontend. In modern development, you can't do without it. Using solutions like c reate-react-app , I personally do not advise. As an alternative for a quick start, it is better to choose ReKit . This is a React development toolkit containing a complete IDE , an initial project structure with routing and Redux , DevServer , HMR, testing tools and many other interesting features, like analytics. Even in the generated project, vendor magic is completely absent, like react-scripts in create-react-app , and you will not have any problems with migration.
3. If you choose Koa for the server, at least you won't have to learn another PL. Throwing an API on it is a trifling matter for an experienced developer, but you will have to study articles and repositories with examples on github . You can choose Express is the predecessor of Koa , and due to its age, articles and answers to typical questions on stackoverflow , there are more for it.
4. The choice of a DB is not basic.
5. Using Docker is also not necessary, but having figured it out right away, you will make your life much easier and will not face the situation that your project, which seemed to work locally, does not want to start on a remote server.
Well , I think Nginx and Git do not need to be presented and justified in terms of motivation for use.
It may also be a good solution to use cloud services like Amazon Web Services
. Before you start learning these tools, you should definitely have a good knowledge of JavaScript , HTML and CSS .
For the application, you will need:
1. A website with a description of the service and a login/registration form
2. Client application
3. Admin panel
4. Mobile applications
Spend time on user stories, UML diagrams and interface diagrams. Use the issue tracker.
In my opinion, to learn all of the above, and to start, apparently, you have to start with the basics of JavaScript , HTML and CSS , it will take a lot of time. To learn how to write good code after studying all of the above, it will take even more time. It's one thing to learn tools, it's quite another to learn how to write good code, solve typical problems, organize architecture. And to solve the tasks of all plans, you will have to both front-end and back-end.
It's easier, I think, to move from the work of a designer to web development. The learning process will go faster, and in a strong team you will quickly learn how to solve typical tasks, write good code and get the right idea about the organization of application architecture, and project development in general. Otherwise, you run the risk of writing a mountain of unsupported, unscalable, error-resistant, full of bugs code, which you eventually abandon after futile attempts to somehow put it in order.
If there is already a strong competitor on the market and your service will simply repeat its business model, then it is unlikely to take off, just waste your time and energy. Be sure to study the market before doing anything.

I
index0h, 2018-02-19
@index0h

At the same time, as you understand, there is no goal to learn the entire language, to become a super-programmer.

Specifically because of this line, how you want to achieve the result does not make sense.
This is the same as wanting to write "abstract war and peace", without knowing the language.
Any web-system operates with various kinds of simple data, in the sense of any in general. Yes, even google
Analytics is built on the basis of a large data set.
I recommend not to use the word "simple", it misleads you first of all.
You will need to store data somewhere, SPA does not solve this problem .
Try the following stack:
- LAMP
- Yii2
- JS
- Vue
- Webpack
- Gulp
Your project may take several years of your full-time work, be prepared for this.
How much iron have you already smelted yourself?))

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question