Conversation
…R-126-Admin-Outreach
…) and indexes for outreach targeting.
…as and register in getModelService.
…nce for dynamic audiences.
…nOutreachService for send flow and analytics.
…dmin/outreach and /me.
…/backgroundColorHex so color picker stays in sync.
|
|
||
| ### Solution | ||
|
|
||
| The Admin Outreach System allows administrators to precisely target students based on attributes such as major, year, enrollment status, and program. |
There was a problem hiding this comment.
these are good attribute based targets
| Admin Outreach System | ||
|
|
||
| Overview: | ||
| Problem | ||
| Administrators often struggle with communicating with the right students effectively. Currently, they rely on mass emailing, which results in cluttered inboxes, students ignoring important announcements, and messages not reaching the right people. For example, an admin might just want to contact the class of 2027 computer science students only. | ||
| Solution | ||
| The Admin Outreach System allows administrators to precisely target students based on attributes, major, year, enrollment status, program, etc. | ||
|
|
||
| Goals: | ||
| Have targeted communication to specific student groups | ||
| Reduce inbox clutter | ||
| Improve students engagement | ||
|
|
||
| General Features | ||
| Student Targeting: | ||
| Administrators select recipients using filters such as: | ||
| Major / department | ||
| Graduation year | ||
| Program type (undergraduate, graduate, etc.) | ||
| Enrollment status | ||
| Dynamic | ||
| As the student attribute changes, updates automatically | ||
|
|
||
| Philosophy Behind the System | ||
| Prioritizes relevant messages instead of mass emailing | ||
| Asking what type of student should receive the message | ||
| All targeting and messages should be done with clear UI controls | ||
|
|
||
|
|
||
|
|
||
| Inspiration from Existing Software | ||
| Submitty, Blackboard: Structured announcements for defined groups | ||
|
|
||
|
|
||
|
|
||
|
|
||
| Breakdown Into Actionable Tasks | ||
| Planning: | ||
| students attributes | ||
| Admin roles and permissions | ||
| Figure out how to get data | ||
| Backend | ||
| Database schema | ||
| Frontend | ||
| Admin UI | ||
| Student email feed | ||
| Delivery | ||
| Integrating email and notification | ||
|
|
||
|
|
||
|
|
||
| Bugs found while creatin events: | ||
| Changin time and location after making an event | ||
| For qr code when coping and pasting the hex color the little color box doesnt reflect the right color |
|
|
||
| ### Planning | ||
|
|
||
| - Define student attributes |
There was a problem hiding this comment.
what kind of attributes? it's important for backend set up for schemas
|
|
||
| ### Frontend | ||
|
|
||
| - Build the admin UI |
There was a problem hiding this comment.
what would that include? create messages? different filters, like major or year?
…R-126-Admin-Outreach
…R-126-Admin-Outreach
nicolelin322
left a comment
There was a problem hiding this comment.
overall, I would like to see more parameters declarations and in all backend route just to make it more readable.
| const page = Math.max(1, parseInt(req.query.page) || 1); | ||
| const limit = Math.min(50, Math.max(1, parseInt(req.query.limit) || 20)); | ||
| const skip = (page - 1) * limit; |
There was a problem hiding this comment.
declare all in one line for readability please (example const {page, limit, skip}
There was a problem hiding this comment.
also, do we really need all 3 pagination parameters (would just two suffice)
| */ | ||
| router.get('/audiences/:id', async (req, res) => { | ||
| try { | ||
| const { OutreachAudience } = getModels(req, 'OutreachAudience'); |
There was a problem hiding this comment.
please clearly declare parameters
There was a problem hiding this comment.
try not to reference directly
No description provided.