- Initial Setup/Privacy Settings Page
- New users must complete this to access other parts of the app
- Unless explicitly skipped
- 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
-
- 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
- Reporting Users
*
User side- Word limit(s) to ensure proper reports are being made
- Sent to admin-side for review
- Mirai+ Subscription Page
- E.g. Description of perks
- Utilises Stripe's payment gateway
- Integrated with
Mirai+ Perks
by Jason
-
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
- Post visibility (Integrated with Calvin's
- 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
-
Scheduled Golang Cloud Function to remove Mirai+ from:
- Users with incomplete/late payments
- Users with cancelled subscriptions (where period has ended)
-
-
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