45
0
Fork
You've already forked project-issues
0

Custom team management software #58

Open
opened 2026年05月30日 04:39:26 +02:00 by songtech-0912 · 1 comment

Currently Project Elara uses a complicated spreadsheet to keep track of our team, as well as a Google form for new members. This method is, understandably, a terrible and non-scalable solution. It would be useful to develop a custom (web)app that can replace the spreadsheet. In particular the following would be desirable features:

  • It should have an interface for anyone to submit the new member application (to replace the Google form), and should automatically create a new prospective member based on the submission
    • Admins can manually upgrade the prospective member into an active member, upgrade a member who has signed the Charter from an associate to full member, set a member as inactive, set a member as a past member, or (in the case of disciplinary measures) mark if a member has been quarantined or expelled
  • It should have a searchable spreadsheet-style view (perhaps via GridJS or DataTables) with sortable and filterable columns, and an editor for member information
    • This information should include at least the current columns in the spreadsheet, as well as other useful fields. This includes:
      • Member name
      • Preferred pronouns
      • Contact email (and possibly contact number)
      • If they are RPI students; if so, their major and graduation year, and their RPI student ID
      • Whether they are in RCOS, and if so, which semester(s)
      • Discord account username, if applicable
      • GitHub account username, if applicable
      • Codeberg account username, if applicable
      • Which Elara division/team they are in (research, software/web development, embedded, build, etc.)
      • Specialization (what they are working on in the project)
      • When they joined Project Elara
      • If they have completed the mandatory Elara onboarding tasks (this can have an expanded view with a progress bar, showing how many of the required onboarding tasks they have completed)
      • Link to their member application on the google form
      • Whether they want to be listed on the Project Elara website; if so, whether they have been added yet
      • Additional notes
  • Moreover, it should be able to submit attendance; members can just scan a QR code and then enter in their name (which should have autocomplete to avoid them needing to type their full name every time), as well as the ability to store their name for 30 days
    • A manual submission can also be used for attendance, with member name autocomplete as well
  • Team analytics, including graphs of the number of members over time, number of new members joining over time, and pie/bar charts to e.g. compare how many people are each Elara division/team
  • It should be able to export and import CSV data for the members; this will make it much easier to import the current data we have in the spreadsheet
  • It should use security best practices to avoid our member data from being compromised

Ideally the frontend should be written in Typescript. The backend is TBD but I'd prefer some Python web framework (Django?) since the language is used ubiquitously, albeit with strict typing (via ty) to avoid errors as much as possible. In addition, the app should be MIT licensed (imo).

Discussion on whether such an app would be useful & worth making is welcome.

Currently Project Elara uses a complicated spreadsheet to keep track of our team, as well as a [Google form](https://forms.gle/jCZhL1ewdL7jnfjK8) for new members. This method is, understandably, a terrible and non-scalable solution. It would be useful to develop a custom (web)app that can replace the spreadsheet. In particular the following would be desirable features: - It should have an interface for anyone to submit the new member application (to replace the Google form), and should automatically create a new prospective member based on the submission - Admins can manually upgrade the prospective member into an active member, upgrade a member who has signed the Charter from an associate to full member, set a member as inactive, set a member as a past member, or (in the case of disciplinary measures) mark if a member has been quarantined or expelled - It should have a _searchable_ spreadsheet-style view (perhaps via [GridJS](https://gridjs.io/) or [DataTables](https://datatables.net/)) with sortable and filterable columns, and an editor for member information - This information should include _at least_ the current columns in the spreadsheet, as well as other useful fields. This includes: - Member name - Preferred pronouns - Contact email (and possibly contact number) - If they are RPI students; if so, their major and graduation year, and their RPI student ID - Whether they are in RCOS, and if so, which semester(s) - Discord account username, if applicable - GitHub account username, if applicable - Codeberg account username, if applicable - Which Elara division/team they are in (research, software/web development, embedded, build, etc.) - Specialization (what they are working on in the project) - When they joined Project Elara - If they have completed the [mandatory Elara onboarding tasks](https://handbook.elaraproject.org/basics/about/quickstart-guide/) (this can have an expanded view with a progress bar, showing how many of the required onboarding tasks they have completed) - Link to their member application on the google form - Whether they want to be listed on the Project Elara website; if so, whether they have [been added yet](https://codeberg.org/elaraproject/website/issues/21) - Additional notes - Moreover, it should be able to submit attendance; members can just scan a QR code and then enter in their name (which should have autocomplete to avoid them needing to type their full name every time), as well as the ability to store their name for 30 days - A manual submission can also be used for attendance, with member name autocomplete as well - Team analytics, including graphs of the number of members over time, number of new members joining over time, and pie/bar charts to e.g. compare how many people are each Elara division/team - It should be able to export and import CSV data for the members; this will make it much easier to import the current data we have in the spreadsheet - It should use security best practices to avoid our member data from being compromised Ideally the frontend should be written in Typescript. The backend is TBD but I'd prefer some Python web framework (Django?) since the language is used ubiquitously, albeit with strict typing (via [ty](https://docs.astral.sh/ty/)) to avoid errors as much as possible. In addition, the app should be MIT licensed (imo). Discussion on whether such an app would be useful & worth making is welcome.
Author
Owner
Copy link

I think this is out of scope for now since everyone is already working on a project, but we can resume this later, hence I'm not closing this issue.

I think this is out of scope for now since everyone is already working on a project, but we can resume this later, hence I'm not closing this issue.
Sign in to join this conversation.
No Branch/Tag specified
main
No results found.
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
elaraproject/project-issues#58
Reference in a new issue
elaraproject/project-issues
No description provided.
Delete branch "%!s()"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?