SpringBoot-MySQL or ExpressJS-MongoDB which one is best for building rest API of online BookStore? - mysql

How are you all? I'm a beginner with the web programming. I am planning to develop my personal e-commerce Bookstore for myself. I've basic knowledge of ReactJS, ExpressJS, Spring MVC, MongoDB, and Mysql. I've already done some basic project in ReactJS, Spring MVC-MySQL and Express-MongoDB like Personal Diary, Cost management system, School management system etc. My future plan is to build a native mobile app for this Bookstore. I am a little bit confused to select the language and framework. I've some question and need experts opinion and suggestion like you.
ReactJS or NextJS(Server Side Rendering), which one will best for the frontend of this Bookstore?
Do I have any possibility to face any problem in SEO in the SPA?
Which Framework and Database will best for building the backend for better performance and lower hosting cost?
By using that backend service, can I use the same API endpoint to build a native app?
Any alternative technology to develop the bookstore?
Thank you all in advance.

-ReactJS has a vibrant and big community, so you would find plenty of support
-As far as i understand type of language for the front-end or SPA's shouldn't affect your SEO
-Java is rock solid, battle tested whereas NodeJs is new and a lot of experiments still going around it. Although it is claimed to be faster and easier to work with.
-Cost ? the cheapest would be PHP Apache shared hosting. Java and or JavaScript will both cost almost the same on platforms like heroku or digital ocean.
-Yes you should be able to build native apps using the same endpoints.
-With what you know do not look for alternate technologies. (What you have is more than enough)
-Moral of the story - If you are alone doing everything, JavaScript can save you a lot of time and effort. (Building web-apps, hybrid mobiles apps and server side APIs, all using JavaScript), however if you choose Java for server side, that knowledge may help you build a native android app and then you will need to learn Swift for a native IOS app and JavaScript anyway for web apps.
Everything boils down to what you are doing and how you are doing it.
All the best!

Related

GUI Development - Free Tools

We are looking at building a GUI application having the following attributes -
* approx 100 screens
* approx 200 users
* interfaces with 8 different legacy applications (protocols tbd but we are assuming web services will be exposed)
* has a separate data store for storing authentication and authorisation info along with few other information.
We are trying to avoid spending any money on procurement of physical servers, application servers etc.So we thought instead of building a web application , we could develop a standalone GUI based application that could be deployed on users' desktops considering that the users are less and the access to this application is confined to our organisation.
We were thinking of Java Swing as one of the options to consider. Is it a good choice? Please advice on the other options that we need to think about. We thought MS products would involving licensing costs to buy the product hence we are looking at developing the application using some free software tools.
Thanks a lot!
Regards,
V
I really like Swing and have written many applications with it, but I'm not sure the argument that you will get a cheaper solution because you have to procure less physical servers is a good reason for it.
There are other ways to use computational capacity on the client side. For example you could use SmartGWT. With a browser based solution you get easy deployment and have no problems with client-server communications (i.e. no proxy hell). It's possible to get all of this solved with a standalone GUI, but it requires experience and time (== money).
I think a standalone GUI is a good idea if you need a "rich" user experience and tight integration with the native environment. Web apps are generally less snappy and not so well integrated. If it's just about editing data on a server, the standalone GUI does not really have any advantages.
I won't rehash what we talked about in the comments. It seems you are focused on java gui solutions. With that said there are alternatives for developing gui applications with free tools. Just to name a couple, you could develop your client with Adobe Flex or Adobe Air, use python, php or ruby and GTK, or develop a windows GUI app using c# if your target os is windows. Similar to Air, Microsoft Silverlight is an option. Java is not the only solution.
Many Java gui apps are written using swing. The major competitor to Swing has long been SWT which is used for eclipse and by IBM. Javafx is a newer/alternative platform Sun/Oracle is behind, you should also look at. To be complete, you should also take a look at qt jambi that lets you develop in java against the Qt framework.

Working with MySQL and Xcode

I've been programing for some time now, and the thing I get asked the most is, how about MySQL database.
What are some good sites for learning about data base programing with xcode, so I can make a app work together with a web site?
To integrate an iPhone/iPad application with mysql you need to develop webservices and then call them in your app. I would suggest the use of JSON, SOAP, XML or PHP, some examples:
http://www.raywenderlich.com/2941/how-to-write-a-simple-phpmysql-web-service-for-an-ios-app
http://www.icodeblog.com/2008/11/03/iphone-programming-tutorial-intro-to-soap-web-services/
http://www.devx.com/wireless/Article/43209
There are a lot of combinations possible.... you can use php or .net or other frameworks, so it's hard to give you a complete list of tutorials.
If you want to develop a regular iOS application, i would suggest this link:
http://blog.iosplace.com/?p=30
Hope it helps.

Web application architecture design - HTML/CSS/JS frontend + REST Backend

I have some experience developing websites, but none with proper web applications.
But this time I'm creating more of a web application, my server will surely handle API calls from a mobile app (iPhone/Android/MeeGo (...or not)) or even from third party clients.
So I'm thinking, is it really necessary that the "website" --the frontend part of my application using HTML (5)/CSS (3) and JS--interacts with my backend in a different way than my other "frontends"?
Am I thinking wrong? I think this is a common problem, and I need some experimented advices on that. Thank you for your help.
Actually No. You're thinking it the right way. You can Javascript to interact with your Rest API, so you can focus only on writing a scalable API, and the UI.
That's the approach taken by Twitter. Their web site, is a Rails application that uses the twitter API, written mostly in Scala, and uses by the hundreds of twitter clients out there, whether mobile or desktop app.

ASP .NET or Django?

I'm new to the web framework, but have been using Java/Servlet/JSP for my previous web development because I hate PHP. I'm thinking of starting a new feature laden website that I need to quickly create and been deciding on numerous technologies.
I dabbled in Drupal for a while and found it too restrictive and didn't particularly enjoy constantly trying to find a module that almost do what you want so I'm moving over to a web framework.
I considered ASP .NET or Django. Searching on this site, I found a couple of questions ("[Is there any advantage to Django versus ASP.NET MVC other than platform? closed" and "ASP.NET MVC vs. Django - Which framework should I learn?"), but they don't fit my situation.
In my case, I'm new to Python and have to learn that, but am relatively familiar with C# due to Java/C++/XNA and VB Classic 6.0. In both cases, I have no experience with Django/Python or ASP .NET/SQL Server and have never created a site with either.
My reasons are as follows:
I like the idea of having a full stack from one vendor and not mock around with Linux as it took me forever to setup a proper secure setup of Ubuntu, PHP, MySQL and Apache. I don't want technical oddities of learning gazillion different applications with obscure settings to get it working. This is mostly a concern with Django/Python as I believe MS got their stuff well tied togheter.
Django is designed for newspaper website so it focuses on rapid and efficient development of new features with good design principles. I love the idea of there is only one good way to do it and the Django authors perfectionism. The pitfall of course is since 2005 they are still on version 1.2! Ruby on Rails is far ahead of them considering I saw this video. Yeah, I watched the whole entire 3-hours, but didn't understand much from the RoR demonstration.
ASP .NET is appealing to me because I already know C# and VB Classic 6.0. I'm familiar with Visual Studio and like the fact that it is also tied in to Windows Phone 7/Xbox Live Indie games with XNA. However, if those features are used is another question down the road. However, as mentioned before ASP .NET just seemed streamelined with plenty of documentation and support. Future job prospects also seem more in favor with MS technology.
What does the community here think?
I would like to hear different ideas as I beginning web programmer it is very daunting and I have vasted far too much time figuring this out on my own the hard way. Help would be very much appreciated!
ASP.Net and WISC# stack.
WISC - Windows/IIS/SqlServer/C# :)
if you want an MVC Web Framework use ASP.net MVC , since you come from a Java Background C# wont be a problem for you
Django is a good framework but you have to learn python

What platform should you use to build your first web application?

I'm deciding between LAMP and Google App Engine with Python. Mainly this is an educational experience so I'm weighing the potential ease/quickness of developing on App Engine against the value in learning LAMP from the get go (and not being locked into the App Engine way of doing things
It depends on where you come from. If you're already familiar with either PHP or Python, I'd let my choice depend on that.
If you're starting from scratch, there's a few things to consider :
PHP (if you consider the P in LAMP to be that) has the advantage that there is a huge amount of web applications/sites out there that use it. If you're aim is to be able to modify or contribute to lots of other webapps, I think you should go with PHP. On the other hand PHP is easy to mess up and it is hard to cleanly seperate webdesign and code. PHP has no real application outside of web development that I am aware of (I may be wrong).
Python is a real sweet language with a clean syntax and a lot of (third party) libraries. Python has lots of applications outside of web development.
Google App Engine allows for a clean MVC approach in conjunction with Django (among others). A MVC approach allows to cleanly seperate HTML/CSS/Javascript layout stuff and Python Code.
If you master GAE/Python, it's a small step to go to Django, running on (Linux|Windows)/(Apache|Ningx)/(MySQL|several OtherDB's).