Decision about SonarQube, Codacy, Docker, Git, Apache Maven, Amazon EC2 Container Service, Microsoft Azure, Amazon Route 53, Elasticsearch, Solr, Amazon RDS, Amazon S3, Heroku, Hibernate, MySQL, Node.js, Java, Bootstrap, jQuery Mobile, jQuery UI, jQuery, JavaScript, React Native, React Router, React

Avatar of ganesa-vijayakumar
Full Stack Coder | Module Lead

I'm planning to create a web application and also a mobile application to provide a very good shopping experience to the end customers. Shortly, my application will be aggregate the product details from difference sources and giving a clear picture to the user that when and where to buy that product with best in Quality and cost.

I have planned to develop this in many milestones for adding N number of features and I have picked my first part to complete the core part (aggregate the product details from different sources).

As per my work experience and knowledge, I have chosen the followings stacks to this mission.

UI: I would like to develop this application using React, React Router and React Native since I'm a little bit familiar on this and also most importantly these will help on developing both web and mobile apps. In addition, I'm gonna use the stacks JavaScript, jQuery, jQuery UI, jQuery Mobile, Bootstrap wherever required.

Service: I have planned to use Java as the main business layer language as I have 7+ years of experience on this I believe I can do better work using Java than other languages. In addition, I'm thinking to use the stacks Node.js.

Database and ORM: I'm gonna pick MySQL as DB and Hibernate as ORM since I have a piece of good knowledge and also work experience on this combination.

Search Engine: I need to deal with a large amount of product data and it's in-detailed info to provide enough details to end user at the same time I need to focus on the performance area too. so I have decided to use Solr as a search engine for product search and suggestions. In addition, I'm thinking to replace Solr by Elasticsearch once explored/reviewed enough about Elasticsearch.

Host: As of now, my plan to complete the application with decent features first and deploy it in a free hosting environment like Docker and Heroku and then once it is stable then I have planned to use the AWS products Amazon S3, EC2, Amazon RDS and Amazon Route 53. I'm not sure about Microsoft Azure that what is the specialty in it than Heroku and Amazon EC2 Container Service. Anyhow, I will do explore these once again and pick the best suite one for my requirement once I reached this level.

Build and Repositories: I have decided to choose Apache Maven and Git as these are my favorites and also so popular on respectively build and repositories.

Additional Utilities :) - I would like to choose Codacy for code review as their Startup plan will be very helpful to this application. I'm already experienced with Google CheckStyle and SonarQube even I'm looking something on Codacy.

Happy Coding! Suggestions are welcome! :)

Thanks, Ganesa

14 upvotes10 comments7.9K views
John Wollner
John Wollner
May 13th 2019 at 11:01pm

You have exquisite taste in technology!

Reply
Ganesa Vijayakumar
Ganesa Vijayakumar
May 14th 2019 at 7:10am

Thank you, John,

Reply
Ben R
Ben R
May 14th 2019 at 7:09pm

I recommend SQL Server over MySQL. In my experience with both SQL Server and MySQL, SQL Server is much better, and now cross platform as well..

Reply
Ganesa Vijayakumar
Ganesa Vijayakumar
May 15th 2019 at 7:32am

Thank you so much, Ben. I completely agree with you but I preferred MySQL because of the following reason.

- I have very good knowledge on MySQL than SQL server so I would like to utilize my knowledge instead of spending time on learning new.

- MySQL is a fully open source one than MS SQL server. Even SQL server provides developer edition, it is not suitable for a small team like more than one.

- Yes, As you said, Now SQL Server is supporting cross-platform via Docker but seems they will lack the option to avail certain features while running SQL Server on Linux or Mac OS X. In the other hands, The enterprises can run MySQL smoothly on several popular operating systems including Windows, Linux, and Mac OS X.

- Even SQL server is scoring more on the areas Filtering, Backup, Stopping executions in the mid and security, I don't have a concern on this as I believe that lack of these factors will not hurt much my application features.

Reply
Alonso R
Alonso R
May 16th 2019 at 3:46pm

I recommend you even more to use PostgreSQL, it's meant to be easily scalable and it's robust for big projects like yours.

We use SQL Server here at our HQ and it's great, but mostly because we have a Gold Partnership with Microsoft, so prices are much lower

Reply
Ganesa Vijayakumar
Ganesa Vijayakumar
May 17th 2019 at 6:14am

I will consider it for Sure. thanks, Alonso.

Reply
Avatar of Ganesa Vijayakumar

Ganesa Vijayakumar

Full Stack Coder | Module Lead