Researcher at Working on it
Needs advice
on
JavaScriptJavaScriptPythonPython
and
ReactReact

Hey everyone, I have a matrix chart drawn in HTML5/CSS 3 dominantly using CSS grid. I would like to add interactive features and am unsure about the best tool. My programming knowledge is limited to 2 semesters of Java in college, so I'd have to learn the language as I go. I am open to anything, but the selected languages would be useful in future projects.

Here are the features I am attempting to add to the site linked as my blog:

  • Assign over 120 attributes each to over 400 elements (probably in a DB)

  • Procedurally position elements in a matrix chart based on user-inputted filters (filtering and searching)

  • Procedurally position matrix elements based on attributes weighted by user-input

  • Change style of elements based on user input (highlighting)

  • Allow saving matrix chart states to be revisited or shared

  • Provide a user-friendly interface for users to submit the above input

  • Build several columns or matrices that are separate but related and seamless to the viewer

READ LESS
Security Certification Roadmap - Paul Jerimy Media (pauljerimy.com)
25 upvotes249.2K views
Replies (5)

Use Javascript alongwith HTML CSS and you have complete set of application ready (even for future for PWA or bundled applications).

You can use charts.js library https://www.chartjs.org/ or https://apexcharts.com/javascript-chart-demos/. You can find many examples, you can have a look at https://codepen.io/ksarpotdar/pen/NWyqqZM?editors=0010

READ MORE
2 upvotes1 comment59.5K views
Michal Stransky
Michal Stransky
May 4th 2022 at 8:47AM

For Charts - If you are good in CSS and javascript and want highly customizable charts why don't you use D3: https://d3js.org/ start with it is little bit slowly, but you can do nearly everything that enter to your dreams and its quite fast.

Reply

PyCharm + Python + Flask + Jinja2 is enough to build web server/ajax and JavaScript + JQuery (maybe React). You can write small easy application but also extreme high scalable application.

I know Java but it need 4x time more code and code is not clear (too much forced use of @decorators) - too complex and takes more memory :)

Remember if you code in Python it is easy to code in Java but if you code in Java you must understand that Python is much more flexible and powerful - also easier to learn.

READ MORE
34 upvotes5 comments93.3K views
Paul Morgan
Paul Morgan
March 30th 2022 at 1:00AM

Thanks! Are you recommending PyCharm + Python + Flask + Jinja2 for the backend and JavaScript + JQuery for the frontend?

I was a little hesitant about Python for a app logic because my initial experience with Django was not great. I see Flask may be a better fit. Python is also a language I can apply to other projects better than Java.

Reply
Cezary Wagner
Cezary Wagner
March 30th 2022 at 9:23AM

Django is very old framework and little slow - if you want something modern faster try Jinja2. Django is not bad for ORM but Jinja2 is better for cloud or no SQL since more clear and faster - also more extensible with macros (Django is not bad still). If you know Django Jinja2 it is similar.

Reply
johnrivelt
johnrivelt
April 21st 2022 at 5:01AM

If you are goot at JAVA language, JHipster tool can generate pretty much all structures. Then, you can focus on backend logic and frontend implementation.

https://www.jhipster.tech/

If you choose Python,

Django is powerful framework but it have longer learning curve as it is big framework than Flask.

As Flask is microframework, very intuitive and easy to start, but you will need to configure manually some packages when your application grows.(e.g. flask-login for user features )

Yes, Pros and Cons

Python + Flask as backend is good option for you as @Cezary Wagner mentioned.

PyCharm is IDE tool, VS code can be alternative.

Jinja2 is popular template engine in python world. (https://en.wikipedia.org/wiki/Template_processor).

Not sure how big your data is for 120*400 matrix chart. According to data per page, this can be bottle neck of between your application and DB. Of course this will depend on how many users will access your app concurrently. Depends on your performance need, you might need to change some stack.

Reply
Masroor Ehsan
Masroor Ehsan
June 18th 2022 at 7:49AM

Aren't you comparing apples to "carts of apples"? Jinja is a templating library, while Django is a complete framework with its own ORM, routing, templating, config engine etc. Flask is a "microframework", it started out as an April fools joke, but caught traction pretty fast. Despite the appearance, Flask is not a "true microframework" though (it uses not-so-micro-sized libraries like werkzeug, jinja to do the actual heavy lifting... hence the joke) Flask was an answer to another quite popular microframework named "Bottle". Armin had wanted to add some features to Bottle, the maintainer refused, so he created "Flask".

I like Flask, but mostly for trivial, smallish projects. If you need more features then you're better off with Django and it's massive ecosystem. It's fun to roll your own solution for the first time, but it quickly gets boring. At the end of the day, developer productivity is the key.

Reply
Saadman Saif
Saadman Saif
April 11th 2022 at 10:16AM

Thanks! This was really helpful. 馃槃

Reply
View all (5)
Avatar of Kiran Sarpotdar