wildangunawan / headquarter

Headquarter is a web application for VATSIM division to manage their division and members
headquarter.vercel.app
MIT License
5 stars 1 forks source link

To do #1

Open wildangunawan opened 2 years ago

wildangunawan commented 2 years ago

Frontend + Backend:

  1. Event:

    • [ ] add polls/feedback section
    • [ ] staff can add remark regarding booking, either to each position or remark in general (like a remark area where it shows all remark added)
    • [ ] HQ can "remember" past position and suggest when staff inputting position
    • [x] get data automatically from myVATSIM
  2. Solo + mentoring session

    • [ ] should be able to add past training to keep training record
    • [ ] maximum three solo can be issued per position per student. admin should have option to enable/disable this future in HQ setting
  3. Training management system

    • [ ] place to host all training related, e.g. CPT request, training request, evaluation, exam system
    • [ ] each student will have their own logbook. staff/ins/mentor can input new record and choose whether it's open to student or not
    • [ ] I suppose solo and mentoring session can be under this scope
    • [ ] new training request should generate queue number
    • [ ] can show atc progress
  4. Ticket

  5. Membership

    • [ ] division staff can directly change user's home vACC through HQ
    • [ ] vACC staff will need to request/escalate vACC change request to division staff, then they will act/respond accordingly
  6. Mentor

  7. Inactive users

    • [ ] should be able to access HQ but limited to ticketing only
  8. User profile

    • [ ] should limit view email ability to division and vACC staff they resident and visiting at. no more.

Backend only:

  1. Event:

    • [ ] to post ATC booking to VATSIM's system, not VATBOOK
  2. Solo + mentoring session

    • [ ] should include student's name, position, and expiration date in solo exp email
    • [ ] solo should not be able to issue if student doesn't have any assigned mentor
  3. Ticket

    • [ ] Discord new ticket created notification
    • [ ] send email to creator when new response added
    • [ ] should not send "There is an open ticket" (or whatever the title is) notification if last response is not from the creator
  4. Membership

    • [ ] should automatically remove staff or controlling rights when moved (without needing them to relogin like now)
  5. Staff

    • [ ] allow multiple staff position for one user
  6. Logging

    • [ ] hide some log from other vACC staff (but still visible to upper staff)
  7. User profile

    • [ ] should log who check whos email

I'll add more to do from HQ v1 once I have the time to

wildangunawan commented 2 years ago

Ticket notification can use Discord's webhook. We'll ask staff to input the webhook URL via vACC setting.

How to generate one: Screenshot 2022-08-01 175625 image

Fill name and which channel you would like the webhook to send to. Then copy webhook URL and input in vACC setting in HQ.

Server side:

POST /webhook_url

Payload example:
{
    "embeds": [
        {
            "title": "New Ticket Created - VATSEA HQ",
            "description": "Working on mobile. Didn't work on Chrome but works on Firefox. Probably browser caching thing.\n\nWill continue with the emailing and host name SSL then",
            "url": "https://hq.vat-sea.com/support/443/view",
            "footer": {
                "text": "Notification sent automatically from VATSEA HQ. To unsubscribe, please delete Webhook URL from vACC Setting in HQ.",
                "icon_url": "https://static.wixstatic.com/media/04819c_3d8e2b1d052145cf9816e178b548c13d%7Emv2.png/v1/fill/w_32%2Ch_32%2Clg_1%2Cusm_0.66_1.00_0.01/04819c_3d8e2b1d052145cf9816e178b548c13d%7Emv2.png"
            }
        }
    ]
}
wildangunawan commented 1 year ago

WhatsApp Image 2023-02-21 at 16 08 44 WhatsApp Image 2023-02-21 at 16 08 45 WhatsApp Image 2023-02-21 at 16 08 45 WhatsApp Image 2023-02-21 at 16 08 46

wildangunawan commented 1 year ago

Event booking remarks table can be like this idk

regions
    id - integer
    others

divisions
    id - integer
    others

subdivisions
    id - integer
    others

events
    id - integer
    others

event_remarks
    id - integer
    event_id - integer
    owner - string -> which region, division, or subdivision
    others

event_booking_position
    id - integer
    others

events_remarkable
    event_remark_id - integer
    taggable_id - integer
    taggable_type - string -> event (general for all booking in an event) or event booking position (specific to a position)
wildangunawan commented 3 weeks ago

Security: