Large Scale project design

Posted 11 months ago by ochirach


Hi, I want to design a large scale application which is similar to below and need advice on how I should design the project in Laravel 5.4

Application type: School Application

Access Levels (with brief summary of abilities): • Teachers o Calendar, View all students, analyze student progress, etc • Students o Can view calendar, past papers, etc • Parents o Can view their students (i.e children) progress be it test scores, calendar, school fees, etc • System Administrator o Responsible for managing staff access on system • Headmaster o Can manage teachers i.e review class performance, calendars, schedule events, etc • Finance o Manages invoices, fees, etc

Example Folder structure (that I would normally use for php only project):

Folder Depth 0

  1. Dashboard
  2. Calendar
  3. Finances
  4. Students

Folder Depth 1

  1. Student Fees
  2. Classes

Folder Depth 2

  1. School Fees
  2. Bus pass
  3. Primary
  4. Secondary

Folder Depth 3 Year 1 Year 2 Year 3 Year … Year … Year … Year 11 Year 12 Year …

As shown above in access level summaries, various access levels will have access to past papers, all have access to calendar and homepage, only finance can view/update/create/delete all invoices, etc

What is the recommended way to convert this concept to a MVC format for Laravel project (i.e a school application) that has these requirements? Should I simply create this exact folder structure within the views? And for routes, will I have to wrap each access levels pages within conditionals for each access level?

NOTE: I am moving from a plain PHP project to a php framework project therefore I am used to just creating the folders for each section as shown above

Please sign in or create an account to participate in this conversation.

Laracasts Mascot

Hi, Have We Met Yet?

Did you know that, in addition to the forum, Laracasts includes well over 1000 lessons on modern web development? All for the price of one lunch out per month.

Sign Me Up


Reply to

Use Markdown with GitHub-flavored code blocks.