Application Plan Review - looking for a wiseman willing to share his experience :]


Hey community,
it’s me again :slight_smile:

Long story short:

After working for a couple of weeks on my react-meteor side project, I have some concerns about it. It is my first fullstack app, and I have choosen the Meteor to be my backend.

Ladies & Gentlemen the issue I am strugling with is choosing the right libs to do the job. Due to not having much experience in the Meteor world I had some bad choices already, which caused me some reworkings, that’s why I decided to ask you for your suggestions. I am not super short on time, however I am not in a position to try out all the options available on the table. In order to increase the possibility to successfully accomplish the project I need to minimize the number of dead end’s during that journey.

Hopefully, with your kind suggestions I would be able to do so.

List of current questions / problems not yet solved

q1) Should I use Redux here or not? I have read plenty of articles, forum posts saying the opposite. I am not sure how well meteor will play with redux. React setState might be not enough here

q2) Is Leaflet.js a good map solution to do the job described in the plan? I am looking for some opensource solution, that will allow me easily to create groups from the pointers and assign the group to a person responsible.

q3) Which lib will allow me to convert excel table to JSON and validate it? The app’s input data will be generated from those excel files for now.

q4) Which is the best way to handle new users invitation. Any libs worth mentioning in that field?

q5) Forms… based on my earlier posts I was already figuring out which way I should go, for now I have decided to use uniforms. While seeing the app map do you think it’s a good idea?

q6) In your own experience fellow developers, what I am missing in my plan at all, what would you add if you were at my place?

So… here is the map of the app:

For now I am using the following solutions:

  1. React for frontend
  2. Meteor for backend
  3. React router v4 -> we are talking about Single Page Application here

NPM Packages:

“dependencies”: {
@babel/runtime”: “^7.0.0-beta.42”,
“bcrypt”: “^2.0.0”,
“classnames”: “^2.2.5”,
“jquery”: “^3.3.1”,
“jquery-validation”: “^1.17.0”,
“material-ui”: “^1.0.0-beta.43”,
“mdi-material-ui”: “^3.2.0”,
“meteor-node-stubs”: “^0.3.2”,
“moment”: “^2.22.1”,
“react”: “^16.3.2”,
“react-addons-pure-render-mixin”: “^15.6.2”,
“react-autobind”: “^1.0.6”,
“react-bootstrap”: “^0.32.1”,
“react-dom”: “^16.3.2”,
“react-popper”: “^0.10.1”,
“react-router”: “^4.2.0”,
“react-router-breadcrumbs-hoc”: “^2.1.0”,
“react-router-dom”: “^4.2.2”,
“recompose”: “^0.27.0”,
“simpl-schema”: “^1.5.0”
“devDependencies”: {
“babel-eslint”: “^8.2.3”,
“eslint”: “^4.19.1”,
“eslint-config-airbnb”: “^16.1.0”,
“eslint-import-resolver-meteor”: “^0.4.0”,
“eslint-plugin-import”: “^2.11.0”,
“eslint-plugin-jsx-a11y”: “^6.0.3”,
“eslint-plugin-meteor”: “^4.2.0”,
“eslint-plugin-react”: “^7.7.0”

Meteor packages:

meteor-base@1.3.0 # Packages every Meteor app needs to have
mobile-experience@1.0.5 # Packages for a great mobile UX
mongo@1.4.2 # The database Meteor supports right now
static-html # Define static page content in .html files
reactive-var@1.0.11 # Reactive variable for tracker
tracker@1.1.3 # Meteor’s client-side reactive programming library
standard-minifier-js@2.3.1 # JS minifier run for production mode
es5-shim@4.7.0 # ECMAScript 5 compatibility for older browsers
ecmascript@0.10.6 # Enable ECMAScript2015+ syntax in app code
shell-server@0.3.1 # Server-side component of the meteor shell command