Webapp with MEAN and Java Stack

I have been a Java / J2EE developer for several years, and unfortunately, I havenโ€™t learned a lot lately because of the context of my daily work and my company.

That is why I decided to start my own personal project, which will have the following details / functions (the first one is the highest priority)

  • Web application for registered users
  • It is necessary to extract information from a third-party API (I think, Twitter, Facebook, Pinterest ...)
  • At the same time, many simultaneous accesses to the same functions (search for API information)
  • Available over the Internet and, ultimately, through Mobile
  • Cron / Quartz regularly (every night?) Send users its updated information by e-mail.
  • Real-time dashboard
  • Email or web notifications when something happens (new Twitter subscriber ...)

My knowledge is as follows:

  • Java / J2EE with a little Spring / Hibernate, quiet a lot of Maven / Ibatis
  • Tomcat / JBoss Deployment
  • HTML, CSS and Javascript, basic. Enough to do the basic things, but not enough to create a responsive and brilliant website like

My smart skills:

  • I want to learn new technologies.
  • I need to learn new technologies (update my resume).

After reading a little bit about the many available technologies, I thought the following:

  • for a part of the engine (i.e. retrieve information from a third party, display it on the Internet and on a mobile device, send e-mail every night ...), I was thinking of a full MEAN stack (I am more attached to the value. js, although mean.io looks more mature) i.e. MongoDB + Express.js + AngularJS + Node.js
  • for the administrative part (creating new users, login control): Java + Spring / Hibernate + regular MySQL + AngularJS
  • Amazon EC2 Instance with Apache + Tomcat for Administration

What do you think + Some questions:

  • Is it crazy to pretend that I will differently borrow part of the engine and the administrative part?
  • Can the MEAN stack deal with all admin / login features?
  • Is it crazy to pretend that I can find out how the MEAN stack is with (for now) limited knowledge of Javascript? Of course, you need to learn ... I know that there will be a quiet learning curve, but I'm ready for it.
  • Is there an easy way to integrate Node.js with Java code? Has anyone tried it? For example, I would like to use the non-blocking features of Node.js, but calling the Java method to access a third-party API, for example.

Thanks in advance for your advice.

Nicolas.

+6
source share
1 answer

It will be a huge task. This is not good or bad, just an expression :)

There are many technologies that you are talking about, and each of them will have a little learning curve. Just watching the American Ninja Warrior last night, you are learning a curve similar to Warped Wall! Do not despair, get ready for the start, and everything will be in order.

Three large pieces that you will have to cover:

  • NodeJS
  • Mongodb
  • Angularjs

NodeJS

There are many tutorials on the Internet, and you will need to learn Javascript and what this means on the NodeJS server. The asynchronous nature of Javascript will be very different from Java (I know it was also my transition). The tutorial I like: Mixu Node Book The e-book I like: Node Beginner

Mongodb

I am still working on this myself, but MongoDB is different from a relational SQL database. Here you need to think differently. There are many tutorials for MongoDB.

However, I will say that NodeJS can be combined with SQL. If you do this to learn, you can immediately turn all the knobs. If you want to see something working, you can just use DB as usual. I like to use knexJS when working with a SQL database. This is amazing.

Angularjs

Angular is a huge structure. People like it. Easy to use as soon as you know it. I read it easily to get started, and then harder to master. There are many ways to try to solve this problem, here the link I wrote is noted: Explore AngularJS on the weekend

However, you will not need to use Angular in your application. Some frameworks can support it and base their NodeJS server on the Angular interface, but you can use your existing interface skills (even gasp !, jQuery) so that your web pages manage your server server.

My thoughts on other questions that you asked

  • Is it crazy to pretend that I will differently borrow part of the engine and the administrative part?

You can separate the two, but if it's just for learning, do it all in one. MongoDB can certainly handle your administrative stuff.

  • Can the MEAN stack deal with all admin / login features?

Yeah. Some frameworks have the same packages by default.

  • Is it crazy to pretend that I can find out how the MEAN stack is with (for now) limited knowledge of Javascript? Of course, you need to learn ... I know that there will be a quiet learning curve, but I'm ready for it.

This is not insanity, but the learning curve is quite large. Having an app / goal will be a good drive for you. Also, do not try to do everything perfectly the first time. Find an NPM package that looks pretty good, use it and continue. Do not worry about all the details right now. Do this in your next application or when you have a functional baseline.

  • Is there an easy way to integrate Node.js with Java code? Has anyone tried it? For example, I would like to use the non-blocking features of Node.js, but call the Java method to access a third-party API, for example.

Of course, the Java client can access the NodeJS server. If you created a NodeJS API server, you can write a Java client to test it. You can even do other crazy things from NodeJS to Java code , but I would suggest leaving Java behind. For many web materials (HTTP requests, etc.), I think you will be pleasantly surprised how quickly to do something in NodeJS, what you will need to do for the equivalent in Java.

+12
source

Source: https://habr.com/ru/post/973717/


All Articles