Which Javascript framework

Hi,

I have a huge web project that include front-end (for clients) and back-end(for administration).
Here are the main points for this project:

  1. website should be responsive (so mainly use of CSS3/HTML5)
  2. multi language website (for now 4 different languages)
  3. allow payment online (via paypal, CB, VISA, Wire transfer, and so on…)
  4. to allow categories (like for services, competences, and so on…)
  5. to allow newsletter management
  6. to manager users (profiles, activation/disable, attachemed files,…)
  7. to manage email sending and projects history
  8. to obscure part of text in some comments end users could write based on some strings or characters
  9. to interact with a MySQL database, and deals with more than 100,000 users
  10. to be SEO
  11. to have a nice and intuitive web interface

for all those reasons, i need to find 1 or more appropriate javascript framework.

My problem is that i’m coming from CMS world and the only Javascript frameworks i know are mootools and jQuery :slight_smile:

Now i read that:

  1. backbone.js is wonderful for database interaction and MVC architecture.
  2. Angular.js is very good for forms
  3. Modernizr.js for UI

now i know there are a lot more on the market, however i would be very happy to get your feedback on the most appropriate javascript framework for each task i need to perform, as it is a 6-12 months project and i can get it wrong.

thank a lot for all your feedbacks.

Al.

You may want to take a look at full-stack development systems, such as MEAN (Mongo, Express, Angular, Node)
Here’s a guide to the MEAN stack

Full-Stack frameworks vs. Non Full-Stack frameworks is also a good article from last year that helps you to think about different issues when picking a framework too.

Thx Paul for fast answer.

I read those documents and i have an additional question:
Q1: what about security aspect ? especially with MongoDB. I read several post and slides where security is a concern for Full-stack and MongoDB.
As the website/webapp should be on internet with payment and sensitive data, i can’t allow such concern. Everybody who posted about AngularJS with MongoDB were scared about this topic.

It’s better to use server-side solutions where payments and sensitive data are concerned. You may find that it’s better to use a dedicated service for such things.
As an example, in New Zealand DPS is a very common one for providing a digital payment service.

Your question is “Which Javascript framework?” but most of your points have little to nothing to do with Javascript.

If you plan to be writing a lot of JavaScript jQuery is a sane choice, it’s a de-facto standard.

I would only consider Angular or Ember if you can see your application staying open in users browser windows all day - like Gmail.
This is the only time these types of applications really benefit the end users.

Even then, if it is a Gmail like app - I would start with Backbone because it has all the important components and starts small so you can understand each piece you add.

As far as my webhosting provider do not provide services with MongoDB, i will have to use PostgreSQL or MySQL.

As MySQL is standard DB for website i will go for that one. So it means that a server side language must be used to interact with Javascript frameworks as they do not do it directly.
So it will be PHP.

Therefore Javascript Frameworks would be used for UI improvement, because AFAIK i don’t see other possibility… Maybe i’m wrong and them please explain me.

thx

Like #markbrown4 said unless the goal is to create a AJAX intensive web application avoiding page refreshes for all page state changes it is best to stare clear of things like Angular JS, ExtJS, and Backbone. Unless you really feel a JavaScript intense web application in the MVC form is the best route a server-side language with jQuery will do the job just fine. You could also float around the idea of building the admin as a JavaScript intensive web application but the front-end separately. The admin would probably benefit from JavaScript MVC frameworks much more so than a front end. Than again I don’t exactly know the details of the front-end. So I’m going by what is typically considered a “front-end” when compared to a “back-end” adminstrative area/system. Though one would also debate the practicality of a JavaScript intensive admin on mobile devices. Last time I tried using Sencha Touch 2 I ran into a whole host of issues due to imperfect/fast network connections and such. I haven’t used backbone or angular but reading over the documentation there are fair share of similarities to ExtJS.

Backbone is actually quite different to the others in that it’s a minimal framework, I kinda like it.

Though I agree the OP is better avoiding these types of frameworks and just starting with jQuery until it grows to a point when they need something else.