Needs advice
on
DjangoDjango
and
Node.jsNode.js

Hi, I a manager in a financial firm. We need to develop a Community/forum kind of application for internal collaboration kind of requirement. People can post something and others can reply with comments etc.. Bit of gamification will be very useful (likes, votes, trust level in a forum, etc.). The Application will require the admin module and also the reporting page.

I need to hire people yet. contemplating flask vs Django vs webapi vs node.js for backend, angular vs react for front-end and Postgres vs Mysql vs ms SQL (ignore the cost).

What stack you suggest?

READ LESS
2 upvotes·13.8K views
Replies (7)
CEO at Binary Genetics·
Recommends
on
Node.js

Hello Kapil, First, I'd recommend looking for existing opensource community/forum software. Sadly a lot of them are still in PHP but nowadays you can find some Node and Python-based ones. Obviously since you'd need to extend their features, you'd want to look for the ones which have extensibility in mind. I used NodeBB a while back and it worked quite well. Now regarding your actual advice requirements (which would assume you start from scratch): I'd go with Node.js (in TypeScript) with a framework like Nest.js and Angular for the front-end (with Postgres for the database, more on that later). You can even use Nx to have a single repository holding both front-end and back-end code and sharing libraries with a unified build process. Moreover, Nest and Angular work the same way with their module and injection mechanisms so the developers could easily work on front-end and back-end code with a large overlap in terms of necessary skills. Regarding Angular vs React, I favor Angular because it's a complete framework (while React focuses on the view) that provides a lot of guidelines and structure to a project. When your team grows or changes, it is convenient to have a predictable style and to easily get started because Angular code pretty much looks the same in every project. React could have the advantage of being able to use React Native (if you want to go down that road) but even on that front you can quickly get a PWA up and running with any Angular project. Regarding the back-end, there are less differences between the options you listed. Here to me the main advantage of Node+Nest is that it aligns with the Angular and Nx mindsets. Note that going down the Python road would have the advantage of sharing some skill set with potential data science related requirements. However, from your description - an internal application - I doubt this is something you'd need. Regarding Postgres vs MySQL vs MS SQL, I prefer Postgres because it offers interesting features outside the classical SQL scope, works quite well and you can get the EnterpriseDB version if you want enterprise-grade support. MySQL to me is a no-go because of the Oracle licensing model, and MS SQL is fine but it will be easier to find cloud offerings hosting Postgres. Just my two cents anyway, hope it helps.

READ MORE
1 upvote·1 comment·12.2K views
Michael Putters
Michael Putters
·
February 25th 2020 at 1:44PM

Well I didn't think StackShare would be this bad at formatting paragraphs...

·
Reply
Lead, Design and Development at Afroshok·
Recommends
on
Django

You have two choices really. Either you go with a full JavaScript stack. This would be Angular on NodeJS or React with Apollo at the front end and GraphQL Yoga and Prisma on Postgresql at the back end. Your Web API here is GraphQL.

The other option is a mixed JavaScript and Python stack. I would start with React with Apollo for the GraphQL API talking to Graphene and Django on Postresql. I would later build in Flask once I know exactly what I want my business logic to look like and there is more time.

I would prefer the Python backend because it makes going into Machine Learning and AI at some point easier than on a JavaScript backend.

READ MORE
3 upvotes·12.5K views
View all (7)
Avatar of Michael Putters

Michael Putters

CEO at Binary Genetics