Open
Description
This is a planning issue breaking down the project goals outlined in my Outreachy proposal into small, measurable tasks.
N.B.: This is a Work-in-Progress which means in the course of this project, some tasks might be added to the list, removed, or even broken down further into smaller chunks or modules.
You can find the designs for the spam dashboard (map and user moderation tables) and go through my entire proposal here: MapKnitter.org Spam Management System proposal
Useful discussions on the project can also be found in this discussion thread: publiclab/plots2/issues/10754
Project Tasks
Back-End
- Create status columns on maps and users tables #1752
- Create batch-spam and single spam endpoints #1761
- Create batch-publish and single publish endpoints #1771
- Create batch-delete endpoint #1779
- Adjust existing fetch map(s) and user(s) endpoints to fetch based on status #1785
- Create batch-ban and single ban endpoints #1793
- Create batch-unban and single unban endpoints #1797
- Create endpoints for fetching maps on the spam dashboard page #1799
- Create endpoints for fetching users on the spam dashboard page #1810
- Edit login process to allow only active users #1815
- Ensure users banned/moderated while already logged in are prevented from carrying out further activities and logged out immediately
- [FTO] Return user's status and role from the PublicLab API
- Create service checking current user's status and role via hourly calls to PublicLab API
- Auto-spam maps of banned users & fetching of recently banned users
- [FTO] Add the first-time-author (P.S: looks like it's new contributor) status to users creating maps for the first time when fetching users
UI Implementation & Integration
Map Moderation Table
- Implement the mobile-responsive design of the map moderation table
- Fetch spammed, published, and unmoderated maps (note to self: number of uploaded images: map.warpables.length, number of placed images: map.placed_warpables.length)
- Fetch recently created maps and recently updated maps
- Implement the single spam and batch-spam features
- Implement the single publish and batch-publish features
- Implement the single delete and batch-delete features
User Moderation Table
- Implement the mobile-responsive design of the user moderation table
- Fetch active users and banned users
- Fetch moderators and admins
- Implement the single ban and batch-ban features
- Implement the single unban and batch-unban features
Navigation, Redirection, and Other Improvements/Additions
- [FTO] Add a link to the MapKnitter spam dashboard from PublicLab.org
- [FTO] Add a link back to PublicLab.org from MapKnitter spam dashboard
- [FTO] Add a link to the MapKnitter spam dashboard from the moderator's profile dropdown
- [FTO] Add pop-up modal to display important map details on click of map name
- [FTO] Change the action of the spam icon beside maps in the gallery (as well as other archive actions elsewhere) to spam and no longer archive maps
- Implement the mobile-responsive design of the 'Recently Banned Authors' page
- Implement redirection/self-clicking to spam all author's maps on author banning
Documentation
- Create a detailed document describing the purpose and usage of the MapKnitter spam dashboard
- [FTO] Link to documentation from the MapKnitter spam dashboard.