πŸ”

This portal is restricted to authorised administrators only. Unauthorised access is blocked automatically.

Sign in with one of the 3 authorised Google accounts.

⚠️
βœ‰οΈ
πŸ”’
⚠️

Protected by Firebase Authentication

Only the 3 authorised admins can access this portal.

Dashboard
πŸ“’
–
Announcements
πŸŽ₯
–
Videos
⭐
–
Pending Reviews
πŸ’¬
–
Pending Comments
πŸ“©
–
New Enquiries
⚑ Quick Actions
πŸ“ˆ Activity This Week

Loading…

πŸ“’ Post New Announcement
0 / 120
πŸ“‹ All Announcements
πŸŽ₯ Add New Video

Regular, short (youtu.be), or Shorts URLs all work.

πŸ“‹ Video Library
πŸ“ Write New Blog Post
πŸ“‹ All Blog Posts
⭐ Student Reviews

Approve reviews to show them in the homepage slideshow.

πŸ’¬ Community Comments

Approve comments to display them on the contact page.

πŸ“© Student Enquiries

Enquiries from the contact form. Mark as read once reviewed.

πŸ”₯ Firebase Security Rules

Copy these rules and paste them in: Firebase Console β†’ Firestore Database β†’ Rules β†’ Publish

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {

    // Authorised admins only
    function isAdmin() {
      return request.auth != null && request.auth.token.email in [
        '[email protected]',
        '[email protected]',
        '[email protected]'
      ];
    }

    // Any signed-in user
    function isSignedIn() {
      return request.auth != null;
    }

    // ANNOUNCEMENTS: public read, admin write
    match /announcements/{id} {
      allow read: if true;
      allow create, update, delete: if isAdmin();
    }

    // VIDEOS: public read, admin write
    match /videos/{id} {
      allow read: if true;
      allow create, update, delete: if isAdmin();
    }

    // BLOG POSTS: public read, admin write
    match /blogposts/{id} {
      allow read: if true;
      allow create, update, delete: if isAdmin();
    }

    // REVIEWS: approved ones are public, anyone can submit
    match /reviews/{id} {
      allow read: if resource.data.approved == true || isAdmin();
      allow create: if isSignedIn()
        && request.resource.data.approved == false
        && request.resource.data.stars >= 1
        && request.resource.data.stars <= 5
        && request.resource.data.text.size() <= 1000;
      allow update, delete: if isAdmin();
    }

    // COMMENTS: approved ones are public, anyone can submit
    match /comments/{id} {
      allow read: if resource.data.approved == true || isAdmin();
      allow create: if request.resource.data.approved == false
        && request.resource.data.message.size() <= 2000;
      allow update, delete: if isAdmin();
    }

    // ENQUIRIES: private β€” admin only
    match /enquiries/{id} {
      allow read, update, delete: if isAdmin();
      allow create: if request.resource.data.details.size() <= 3000;
    }

    // Deny everything else
    match /{document=**} {
      allow read, write: if false;
    }
  }
}
πŸ”— Open Firebase Console
πŸ“– Rules Explained
πŸ“’ Announcements & πŸŽ₯ Videos & πŸ“ Blog Posts
Public can read all content. Only the 3 authorised admins can create, edit or delete.
⭐ Reviews
Signed-in users can submit (always starts unapproved). Public only sees approved reviews. Admins approve or delete.
πŸ’¬ Comments
Anyone can submit (starts unapproved). Public only sees approved. Admins moderate all.
πŸ“© Enquiries
Anyone can submit. Only admins can read β€” completely private from the public.
πŸ”’ Everything Else
All other documents are denied by default. Nothing is accessible unless explicitly allowed above.
βš™οΈ Site Settings
Maintenance Mode
Show maintenance message to site visitors while keeping admin access active.
Review Submission
Allow students to submit new reviews through the contact page.
Comment Submission
Allow students to submit comments through the contact page.
Auto-approve Reviews
Automatically publish all new review submissions without manual approval.
πŸ‘₯ Authorised Admin Accounts
Admin 1 β€” Owner
● Active
● Active
● Active
πŸ”§ System
Firebase Project
Connected to: de-altruists
● Connected
Export All Data
Download all site data as a JSON backup file.
πŸ—‘ Danger Zone
Delete All Pending Reviews
Permanently delete all unapproved reviews. Cannot be undone.
Delete All Pending Comments
Permanently delete all unapproved comments. Cannot be undone.