For this timetable, since you need both a web and a mobile, you should do hybrid mobile. Node.js with FeathersJS / SailsJS in the backend and Vue.js in the front end, get you as fast as you can to the goal. I love Laravel but it will be a different stack in the backend and front-end. Vue.js is the easiest on the front-end. And works well in a hybrid Cordova app. About charting and reporting, try Chart.js for charting.