15. My Conclusion

It is now time to draw the curtains on my Laravel project, so this post will conclude my work and experience.

This has been a very rewarding and enjoyable project for me to work through. I'm not overly confident when it comes to working with web frameworks in general and I have struggled in the past to get to grips with MVC architecture. I feel that this project has genuinely provided me with a massive amount of knowledge and learning that I will be able to utilise in future projects/work, whether they are educational or industrial. I was able to delve into the mechanics of controllers, models and views and learn about their implementation within Laravel. Initially, this was overwhelming and I felt like I faced a learning curve which I would struggle to overcome. However, with persistence and research, I was able to confidently build my blog application. I look forward to building upon my newly learned skills and imparting what I've learned onto others.

In terms of the application, I feel that I have taken a lot of care to iron out the finer details, which has led to me producing a fairly well-made end product. There are aspects of the application which could be improved and features which could be added:

  • Implementing CRUD for User Profiles: I implemented CRUD functionality for blog posts, however, I did not implement this functionality for user profiles. I fully understand that most blog platforms (or other CMS) allow users to update their profile data - such as their email address, profile photo, password, etc. I could have implemented this feature, however, I feel I would have been mostly repeating the code used for the blog CRUD. I chose to focus on ironing out small issues and learning more about the code I was writing, instead of repeating myself for the sake of quantity.
  • Implementing Additional Admin Features: Similar to the above point, I could have created a separate dashboard for admin users, but instead, I chose to ensure I better understood the mechanics of authorisation in Laravel, rather than producing more repetitive code. I still implemented the functionality for admin users to have additional 'powers'. For example, logged-in admin users can delete a post by using the 'Delete' button under each post. This is an example of admin users being provided with controls that other users do not have access to. Additionally, admin users can edit any post via the URI, so the functionality is in place. The aspect missing is that I did not create another set of views just for admin users, which would have fleshed out an admin dashboard.
  • Authentication Using OAuth: I did not implement OAuth authentication. I personally wanted to focus on all things Laravel and get to grips with the framework. I believe this may have added too much pressure to the project, which was already providing me with many new skills and a better understanding of web frameworks/Laravel.
  • User Management: I did not implement any functionality which would allow a user to delete their own account (this also applies to admin users). As it stands, user accounts can only be deleted directly from the database using phpMyAdmin or Table Plus. I understand that in the 'real-world', this would be a necessary feature available to all users.
  • Integration with SMTP Mail Server: I did not integrate my project to work with a mail server, rather I opted to work with the log files within the Laravel project's storage directory. Using the logs allowed me to test the functionality of password resets, without the requirement of setting up a mail server. I do understand the benefits of working with a mail server in a 'real-world' application, as it would be highly useful to view emails as they would be seen by an actual user. It would also be more user-friendly for myself, as I would not have to look through potentially large log files.

To reflect on the blog posts I have written here, I believe I have provided a suitable amount of detail in my descriptions and have offered relevant screen captures of my work. I hope that I have been able to convey the effort I have put in throughout this project. I made a point to highlight significant code where appropriate and I fully commented all of my code to make it easier to read for myself and others. I have tried to divide the development process into chunks, which then formed each blog post I wrote.

To reiterate, I really enjoyed working through this project as I feel it has given me a better understanding of MVC architecture and working with web frameworks - subject areas which will definitely aid my confidence when it comes to seeking employment.

Comments