Skip to content
This repository has been archived by the owner on Dec 24, 2023. It is now read-only.

Latest commit

 

History

History
106 lines (88 loc) · 3.69 KB

wei_ren.md

File metadata and controls

106 lines (88 loc) · 3.69 KB

WeiRen:

Functionality Of Web Application

  • Initial Setup/Privacy Settings Page
    • New users must complete this to access other parts of the app
    • Unless explicitly skipped
privacy_initial_setup
Control the level of information you display on Mirai.

  • Follower System
    • Followers Following Pending# Requests
      View* View* View View
      Follow Unfollow Accept Remove
      Unfollow Deny
    • *Allowed to by other users
    • #If "requests only" for follower requests
follower_system
Demonstration of the many features of the system.

  • Blocking Users
    • Selectively remove public users from view
    • Blocked users cannot view your information
      • Logged out users can see information with public permissions
      • Warning displayed to caution user of this loophole
user_blocking
Blocking, and unblocking, a user and their posts.

  • Reporting Users *User side
    • Word limit(s) to ensure proper reports are being made
    • Sent to admin-side for review
user_report
Reporting a user for spam. Note the other available selections.

  • Mirai+ Subscription Page
    • E.g. Description of perks
    • Utilises Stripe's payment gateway
    • Integrated with Mirai+ Perks by Jason
stripe_subscription
Subscribing to, canceling and resuming Mirai Plus.

Implemented:

  • Initial Setup

    • Middleware for privacy settings
    • Dummy proof process of setting privacy
    • Encourage infosecurity
  • Privacy Settings

    • Provides Relationship-Based Access Control
    • Control information sharing based on
      • Following status
      • Public permissions
    • Covers the following:
      • Post visibility (Integrated with Calvin's Post Fetching)
      • Profile details (Integrated with Calvin's Profile Page)
      • Search indexing (Integrated with Jason's Search)
      • Sending chat DMs (Integrated with Jason's Chat)
      • Becoming a follower
    • Default: Follower Only
  • User Blocking

    • Provides Role-Based Access Control
    • Layered security on top of privacy
  • Stripe Payment Gateway

    • Uses Stripe's checkout session

    • Avoid storing payment credentials locally

    • Detailed logs and dashboard for transaction management

      stripe_logs
      Stripe also provides API logs and a dashboard in addition to event logs.
    • Scheduled Golang Cloud Function to remove Mirai+ from:

      • Users with incomplete/late payments
      • Users with cancelled subscriptions (where period has ended)

Research:

  • Privacy configurations of various social medias

    • Facebook: Setup Wizard
    • Instagram: Data Export (by Jason)
    • Twitter: Follower System
  • Stripe Payment Gateway

    • Python SDK was not asynchronous
    • cURL was supported
    • An async httpx client had to be configured to optimise the process
  • Cloud Function needed for Stripe

    • Periodic removal of Mirai+ privileges
    • Study on Golang syntax and its Stripe SDK