CPNT 200

Final Pair Project - Blog Website

Weight: 55%

Due:

Late Penalty: 10% deduction for each day late. Submissions will not be accepted more than three days late.

Project Overview

In pairs, you’ll be setting up a website’s backend using supabase + directus, configuring a cms for non-technical writers, and configuring user signup and sign in.

  • All page data, blog post and pages will be handled in the CMS

  • CMS Blog Posts have the same requirements as activity 2 (min 3 custom fields)

    • Create 4 blog posts (use generated content to save time)
  • Users are able to sign up, out, and login

  • Their experience should be customized: (ie: display the user name on the page when authenticated)

  • Users should be able to like a post and the likes should save to the database

  • Configure RLS Policies as needed

  • NO design is necessary, this can be entirely css free if you want (it won’t be taken into account for the grading)

  • For page content, you will need:

    • a simple landing page
    • a sign up page
    • a blogs collection page
    • dynamic pages for the blog posts
  • sign in and sign out should be handled through buttons in the top bar

  • SEE BELOW FOR SPECIFIC REQUIREMENTS Grading:

  • Pair mark: 50 points

  • Peer evaluation: 5 points


Marking Rubric

10 points: Backend Configuration & Site Deployment

  • Deploy Directus to Render using Docker container
  • Properly Seeded Database using ENV variables
  • Supabase redirect urls set up to your deployed site
  • Site has been deployed to Render or Vercel
  • directus tables have been secured with RLS

10 points: Blog Post Schema and Sample Posts

  • Schema labels are clear and descriptive
  • Fields are appropriate to content
  • When Creating Content, the schema is well organized
  • Sample posts have enough content to properly demonstrate usage of the schema
  • 2 sample posts are created and read only to the public

10 points: User Sign Up and Confirmation Redirect

  • User can sign up with an email and password
  • On user signup, user is redirected to confirmation page
  • When a user signs up, they are added to supabase

10 Points: Sign in/Sign Out and Authenticated UX Feature

  • User is able to sign in with their email and password
  • User can sign out
  • User email is shown in the top bar when they are signed in
  • sign out notification on correct signout

10 Points: Customized read access

  • Add rls policy for authenticated users to have read access to a collection that non-authenticated users don’t
  • Create a protected route that can only be seen by authenticated users article
  • Generate some placeholder content to demonstrate this working correctly
  • inauthenticated access should throw an error page with the ability for the user to get back home via a link

5 points: Peer Evaluation

At the end of the Final Project, all team members must evaluate their teammates on a scale of 0-5. Each member’s mark for this portion will be the average score given to them by their teammates.

  • You must submit an evaluation to receive marks for this component;
  • Evaluations will be submitted confidentially in Brightspace;
  • Your Instructor will adjust this mark based on Assigned tasks (see below) plus commits submitted to GitHub.

Submission Instructions

  • Only 1 person needs to submit the project repo and deployed link
  • Instructor needs to be added to supabase
  • everyone needs to submit a score for their teammates