Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AANTS Backend #971

Open
2 of 7 tasks
MinhxNguyen7 opened this issue Apr 26, 2024 · 6 comments
Open
2 of 7 tasks

AANTS Backend #971

MinhxNguyen7 opened this issue Apr 26, 2024 · 6 comments
Assignees
Labels
backend enhancement Improvements to the user experience

Comments

@MinhxNguyen7
Copy link
Member

MinhxNguyen7 commented Apr 26, 2024

Description

  • Implement the backend for AntAlmanac Notification System (AANTS).
  • AA will periodically poll AAPI for section changes.
    • Discussion of the details of the API communications
  • The polling script must be robust and also update with new PRs as part of our CI pipeline.
    • I.e., it cannot be an EC2 instance with a cron job.
    • We probably want to add another lambda as part of our stack (equivalent to another backend) that is triggered by a CloudWatch event. See this.

Requirements

See discussion below.

Open Questions

  • When, exactly, should we send a notification?
    • What if a section opens, then closes, then opens again?
  • How will we send emails? SNS or another service?
  • From which email are we sending? Would it be proper to use the [email protected] email address?

Setup

Database

Tasks

  • Define requirements.
  • Set up the database locally.
  • Implement the script which polls AAPI, checks the subscriptions, and triggers notification sending.
    • As a dummy, just print the emails to the terminal
  • Design the cloud architecture.
  • Implement email-sending.
  • Implement and integrate cloud system into CDK.
  • Implement endpoint with auth for users to subscribe to a notification.
    • This will have to wait for auth to be finished (F2F).

Related Issues

Useful Information

  • The stack where we will add the resources is in apps/cdk/src/stacks/backend.ts.
@MinhxNguyen7 MinhxNguyen7 added enhancement Improvements to the user experience backend labels Apr 26, 2024
@github-project-automation github-project-automation bot moved this to Backlog 🥱 in AntAlmanac Apr 26, 2024
@github-actions github-actions bot added the Stale label Jul 26, 2024
@MinhxNguyen7 MinhxNguyen7 moved this from Backlog 🥱 to Selected for Development in AntAlmanac Dec 8, 2024
@github-actions github-actions bot removed the Stale label Dec 9, 2024
@MinhxNguyen7
Copy link
Member Author

I just have two modifications to the requirements:

  • The user should be able to sign up for open, wait-list, and/or full, not just all notifications.
  • The user should also be able to sign up for a change of restrictions.

The other requirements should be updated accordingly. Also, can you move the requirements to a discussion? That would be a better place for it, seeing how much space it is in the issue and the fact that it's not only to do with the backend

@IsaacNguyen
Copy link
Contributor

IsaacNguyen commented Dec 21, 2024

I just have two modifications to the requirements:

  • The user should be able to sign up for open, wait-list, and/or full, not just all notifications.
  • The user should also be able to sign up for a change of restrictions.

The other requirements should be updated accordingly. Also, can you move the requirements to a discussion? That would be a better place for it, seeing how much space it is in the issue and the fact that it's not only to do with the backend

Yeah sounds good! About the change of restrictions part, I saw no mention of AAPI signaling when class restrictions are dropped in the discussion we had with AAPI. Would we have to call a separate AAPI endpoint for this or are class restrictions going to be an added output from the one we will be calling? Adding onto this, the only restriction we will be worrying about is the major-only restriction, right? I know there are other types of restrictions for classes but this is the only one I know about that makes sense.

@IsaacNguyen
Copy link
Contributor

IsaacNguyen commented Dec 21, 2024

Requirements

  • There will be a button for each course allowing a user to sign up for a notification subscription on the Added tab. They have the option to opt in for notifications when the class has requirement code changes, opens, becomes waitlisted, and/or becomes full. They can select only one or multiple.
  • There can be a little tab to view all classes that the user has notification subscriptions for the quarter.
  • Notifications about a current quarter's classes will stop being sent following the end of the second week of instruction (the deadline for to add/drop classes).
  • The user can have the option to remove their notification subscription from a certain class from the Added tab, preventing them from receving further email notifications.
  • Check changes and notify for current and all subsequent terms
  • There will only be ONE email format that is sent. Based on whatever they are subscribed to, they can receive emails for individual changes (just waitlist, open, full, or code changes) OR multiple (waitlist and code change, open and code change, etc.)
  • Image
  • The subject line of each should contain the class name and say it has had enrollment changes.
  • Assuming we use AWS SES, the emails will be sent via [email protected]. Otherwise, it could be sent from an AntAlmanac email (assuming we have one).
  • The email itself should greet the person (assuming we have their name), say how recent this information was gathered (time and date), mention the course name, time slot, and course code, and give the user a link to WebReg and AntAlmanac.
  • No email will be sent if the class goes from OPEN to OPEN or FULL/WAITLISTED to FULL/WAITLISTED

@MinhxNguyen7
Copy link
Member Author

I saw no mention of AAPI signaling when class restrictions are dropped

You should communicate that to them so they can add that as part of the response

@IsaacNguyen
Copy link
Contributor

I saw no mention of AAPI signaling when class restrictions are dropped

You should communicate that to them so they can add that as part of the response

Got it. Just made a comment in the discussion.

@IsaacNguyen
Copy link
Contributor

I saw no mention of AAPI signaling when class restrictions are dropped

You should communicate that to them so they can add that as part of the response

According to Andrew, it doesn't look like they can implement that unfortunately.

@MinhxNguyen7 MinhxNguyen7 moved this from Selected for Development to In Progress 🤠 in AntAlmanac Dec 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backend enhancement Improvements to the user experience
Projects
Status: In Progress 🤠
Development

No branches or pull requests

2 participants