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.
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! :)
You have exquisite taste in technology!
Thank you, John,
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..
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.
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
I will consider it for Sure. thanks, Alonso.