Conclusion and Future Plan

Conclusion and Future Plan

Conclusion

Laravel is quite a nice framework, we can build applications quickly with it as it offers scaffolding commands and easy to build solutions. It is easy to learn with tons of tutorial and well-explained documentation. It also fulfils the requirements for modern web applications such as authentication authorisation, email handling, CRUD, RESTful, MVC and many more which makes it perfect in many levels.

However, it might be confusing sometimes to debug issues or to know where exactly the magic stop working. As most of its error messages refer to the core code of Laravel itself, not to user’s code. Besides, its ability to control the authorisation from too many places with too many ways (Middleware, policies, routes, controllers and blades with directives @can @auth @guest) makes it difficult for the user in how to debug things if he got 403 all the time for example (what to check). As happened with me =)

Future Plan

Due to the very short period of time that this coursework had and the learning curve that Laravel has. And looking to the potential benefits of Laravel’s features and advantages and what it can give to my project; I am looking to finish the following tasks even after the submission of the coursework, that’s for my own experience and self-programming improvements.

Enhancing the UI/UX

  • Replacing the default HTML Alert windows with Bootstrap Modals.
  • Adding some graphics and charts at the top of the results page.

Adding more authorisation capabilities

The app users can have some sort of privileges give them more abilities, so we can think of having 3 different levels of users:

  • RegularUser: that is the minimum level of a registered user, who can create results, upload files, edit their own profile or delete his account permanently.
  • SuperUser: or a content admin who can do what a regular user do plus he can edit any user’s results and control their files.
  • Administrator: who can do what a regular user do plus edit a user’s profile or register/suspend/delete any user account. He can also assign users roles and abilities.

Adding more functionality to the results table

This is something essential in such a statistics app. I mean here the ability to sort and filter the results depending on the location or other criteria, …etc.

Also, as we will have a content admin who can edit anyone’s result; then it might be useful to add extra columns to the table/database to hold the information about who did the last update and when he did that.