Published on

Building a University Portal with Power Pages #2

Authors
  • avatar
    Name
    Calum Harrison
    Twitter

tailwind-nextjs-banner

Quick recap

In this series, I’m documenting the process of building a university portal with Power Pages, sharing practical tips along the way :)

In part 1 I said I would cover the Model-driven app that will be the back office application and the portal structure so let’s do that.

High-level view

This is how I’ve imagined it would work. There are three roles covering two areas (CRM and Power Pages).

RoleTechPurpose
Administrator (back office staff)CRM (Model-driven app)Check and update records in the system.
LecturerPower PagesAccess resources and perform daily operations.
StudentPower PagesAccess resources and record activities.

Model-driven app (CRM)

With the ERD in place I did the following…

  1. Created the tables within a custom solution in Dataverse.

  2. Created a Model-driven app that showcases the tables created.

  3. Added test data so that this can be pulled from Power Pages.

  4. Assigned icons to the tables by creating web resources to make it look better.

I found a figma link that has lots of fluent UI icons for free so worth checking!

Developer setup

For solo projects this is my normal setup but it’s different for working in teams as you don’t want to override people’s work that can happen with pac cli.

  • VS code
  • GIT
  • GitHub Desktop to track code changes
  • GitHub to store code (for previous work projects I’ve used Azure DevOps

With the setup completed, I did the following…

  1. Created a Power Pages site from blank (I decided to not go with an existing template).
  2. Created a auth profile (it’s how you connect to your environment)
  3. Got the website ID from the pac pages list command
  4. Downloaded the portal using the pac cli command in VS code.
pac pages download --path "<yourportalfolder>" --webSiteId "<websiteid>" --modelVersion 2 -o

Portal structure

In order to understand what configuration is needed on the dashboard page I like to breakdown the structure particularly for complex pages like the dashboard.

What’s next?

There will be web templates that will be created for the dashboard that should include liquid to fetch data.

If there is anything that I’ve covered that would be useful to cover in more detail please let me know in the comments or LinkedIn and I can add it to the backlog for the future :)

As always, thanks for reading and take it easy!

👋 Enjoyed this post?
Sign up for my newsletter to get notified whenever a new blog is out.
*
Don't forget to check your spam folder so you don't miss out!*

This is a personal, non-work project just for learning and sharing.