「GSoC 2023 Proposal」Talawa-Admin: Improved People and Newsfeed Management

本文最后更新于:2023-04-04 23:07:20 UTC+08:00

About Me

I am a sophomore undergraduate student at the School of Computer Science and Technology, Huazhong University of Science and Technology. My semester will complete in late May leaving me enough time to get ready for my GSoC project. If I am selected, I shall be able to work around 40 hrs a week on the project, though am open to putting in more effort if the work requires. The reason why I apply for the GSoC project is that I hope to make my best contribution to the community by completing my project seriously, and at the same time, improve my technical level and coding ability, broaden my horizon, and improve my communication skill with others in the community.

Executive Summary

我的提案是为了向 Talawa-Admin 添加志愿者模块的支持和向 Event 添加必要功能。它将解决的挑战是目前对事件暂时没有很好的支持,给到组织管理者的权限并不足够。他对 Talawa 使用者的好处是能让他们更加方便地管理组织下的活动,为活动分配志愿者。

My proposal is to add volunteer module support to Talawa-Admin and add necessary functionality to Event. The challenge it will solve is that there is currently no good support for events, and the permissions given to organization managers are not enough. Its benefit to Talawa users is that it will make it easier for them to manage the activities under the organization and assign volunteers for the activities.

Background

Talawa-Admin has completed the major functions of administrative dashboard, including several pages: Dashboard, People, Events, Contributions, Posts and Plugins. However, many of the pages are still not fully functional. Also, there are still many necessary features that could be added before talawa is officially released.

Talawa-Admin is based on Talawa-API. Talawa-API have 3 base constraints, including User, Organization and Admin & Super Admin.

User 已经实现了基本信息、创建事件、与组织的关系等基本功能,但有关志愿者的部分如是哪些事件被分配的志愿者,志愿者岗位(如管理者应当增加其权限)、志愿者职责等尚未实现,事件的部分功能也没有实现,如自主签到签退、出席时长等。

Admin 已经实现了管理成员、增删 Event 和 Group、修改信息 of User 和 Organization 等功能,但是与志愿者相关的模块仍然没有实现,如管理志愿者与 Event 和 Organization 之间的关系、管理志愿者权限、对志愿者进行评价等,同样有关事件的部分功能也没有实现,如为事件分配志愿者、发送事件通知到组织中等。

User has achieved basic functions such as personal information of user, event creation, and relationship with organizations, but the part about volunteers, likes the volunteers assigned to events, volunteer positions (such as the permissions of the managers among the volunteers should be increased), volunteers Responsibilities, etc., have not yet been implemented. Besides, some functions of the events have also not been implemented, such as independent checkins and checkouts, member attendance duration, etc.

Admin has implemented functions such as managing members, adding and deleting Events and Groups, and modifying information of User and Organization. But the modules related to volunteers are still not implemented, such as managing the relationship between volunteers and Events or Organizations, managing volunteers Permissions, evaluation of volunteers, etc. Also, some functions related to events have not been implemented, such as assigning volunteers to events, sending event notifications to organizations, and so on.

Design and Description of Work

针对以上分析,我认为针对 Event 单独开一个类似 UserAdmin 的 base constraint 比较好,其会被用于将志愿者相关事件与组织的活动统一起来。

我在此处简要列出 Event 所需要支持的相关参数。在实现 User 的相关功能时,也需要对 UserAdmin 进行比较大的改动。

  1. 时间和地点 of Event:所有事件必不可少的两个要素。

  2. 出席成员及其各自的角色与职业:角色分为:领导,管理者,工作人员(志愿者),贵宾,必须出席的成员,非必须出席的成员(被邀请者)(此处各自的角色应该只是一个标签类型,详细的权限管理应该在 User 处实现。)。职业需要参与人员自行填写,或者给出下拉框以供选择,如 IT 工程师、教师、宗教人员、厨师等等。另外,应该实现可以根据不同标签筛选人员,并对他们进行批量操作的功能(如签到、评价、删除等,直接调用 User 中实现的功能)。

  3. 考勤状态:出席成员签到、签退时间,可以根据日期与时间筛选不合格人员。

  4. 通知:不同的通知会被发给不同角色的人。管理者应当可以自定义通知发送的方式(如邮件、SMS、移动软件 notice 等)、时间、文本内容、紧急程度、是否需要回复等参数。管理者还能查看关于通知的查看状态、回复信息、统计数据等,并能够便捷地对回复进行操作(如为 Event 增删志愿者等)。

  5. 特殊服务:由于该软件会被各行各业的人员使用,所以应当把一些行业的特殊服务也考虑在内。

    1. 托儿所:父母与孩子的身份附属关系需要在 User 中实现。孩子是否需要托管服务,托管任务分配到哪些人等问题都需要在 Event 中体现。

    2. 直播行业:线上直播平台、链接。或许可以实现直接将直播平台嵌入到 Talawa 中来。

    3. 普遍的行业:大多数组织组织活动都需要给出席人员足够的活动资料以更好地让他们参与其中。需要为 Event 建立文档页面。

  6. 仪表盘与统计数据:为 Event 建立单独的仪表盘,便于管理者能够清楚地梳理近期活动流程、活动概况(如出勤率、志愿者工作水平、完成率等)。为 Event 建立日历,日历上以日程形式放上即将或已经举行的事件。

  7. 一些其他的细节:比如 Admin 会在一些情境下在一个事件中临时授予一些 User 特殊权限,如考勤、资金管理等,这时还需要为权限添加一定的时限。

Based on the above analysis, I think it is better to create a separate base constraint for Event, similar to User and Admin constraints, which will be used to unify volunteer-related events with organizational activities.

Here I briefly list the relevant parameters that Event needs to support. When implementing the related functions of User, it is also necessary to make relatively large changes to User and Admin.

  1. Time and place of Event: two essential elements of all events.

  2. Attending members and their respective roles and occupations: The roles are divided into: leaders, managers, staff (volunteers), VIPs, members who must attend, members who are not required to attend (invitees) (respective roles should just be a label type, and detailed permission management should be implemented at User.). Occupation needs to be filled by the participants themselves, or a drop-down box is given for selection, such as IT engineer, teacher, religious person, cook, etc. In addition, it should implement functions that can filter people based on different tags and perform batch operations on them (such as check-in, evaluation, deletion, etc., directly call the functions implemented in User).

  3. Attendance status: attendance member check-in and check-out time, unqualified personnel can be screened according to date and time.

  4. Notifications: Different notifications will be sent to different roles. Managers should be able to customize the notification sending method (such as email, SMS, mobile software notice, etc.), time, text content, urgency, whether a reply is required, and other parameters. Managers can also view the viewing status of notifications, reply information, statistics, etc., and can easily operate on replies (such as adding or deleting volunteers for Event, etc.).

  5. Special services: Considering that the software will be used by people from various industries, special services for specific industries should be incorporated, such as:

    1. Nursery school: The identity affiliation relationship between parent and child needs to be implemented in User. Questions such as whether the child needs hosting services, who to assign the hosting tasks to, etc. need to be reflected in Event.

    2. Live broadcast industry: online live broadcast platforms and links. It may be possible to directly embed the live broadcast platform into Talawa.

    3. Common industry: Most organizations organize events and need to give attendees enough event information to better engage them. A documentation page needs to be created for Event.

  6. Dashboard and statistical data: Create a separate dashboard for Event, so that managers can clearly sort out the recent activity process and activity overview (such as attendance rate, volunteer work level, completion rate, etc.). Create a calendar for Event, and put upcoming or past events on the calendar in the form of a schedule.

  7. Some other details: For example, Admin will temporarily grant some User special permissions in an event in some situations, such as attendance, fund management, etc. At this time, a certain time limit needs to be added to the permissions.

Results for the Palisadoes Community

新的 Event 被创造会使得使用 Talawa 的管理者更容易、更方便地管理活动,大大节省了他们的时间。这会给 Palisadoes Community 带来更好地名声与更大的影响力,让更多的受资源限制的组织能够使用开源软件 Talawa

The new Event was created to make it easier and more convenient for managers to manage events and saving them a lot of time. This will enhance the reputation of the Palisadoes Community and more influence, making Talawa open source software available to more resource-constrained organizations.

Deliverables and Scheduling

对于安排时间,我的想法是每完成一部分功能的开发,都对应地完成这个部分的测试与文档的编写.

Regarding the arrangement of time, my idea is that every time a part of the development of the function is completed, the corresponding part of the test and document writing will be completed.

After completing development, testing and documentation at each stage, I will submit my code in the form of Pull Request.

May 29th ~ June 18th (3 weeks)

  • Learn more about Palisadoes Community, and discussions with the mentor and community on its interpretation and how it might best be implemented. Collect known issues and improvement advices from community.
  • Familiar with the basic structure of Talawa-Admin and Talawa-API project code, sort out the basic code logic, and determine where the parts that need to be completed should be added.
  • After collecting enough information, improve the design plan mentioned above and complete a more detailed design book.

June 19th ~ July 2nd (2 weeks)

  • According to the design document, the authority management, membership relationship, and volunteer module development of the User part should be roughly completed.
  • Finish testing and documentation for User.
  • Connect with students who are doing Talawa-Admin UI design, and make necessary adjustments and adaptations.

MINESTONE: To get User and other parts to work properly, it is convenient to use these new features implemented in the Talawa-Admin admin page.

July 3rd ~ July 16th (2 weeks)

  • According to the design book, complete the creation of the Event framework, complete the establishment of the connection between Event and User, Admin, and add basic functions such as time, place, and attendance to the Event.
  • Complete the testing and documentation of this part of Event.
  • Prepare mid-term inspection materials and deploy the Event management system that is now available.

July 17th ~ July 30th (2 weeks)

  • Add the role of User in Event, occupation-related sections, and add the previously implemented authority management to Event.
  • Add functionality for attendance, dashboards and statistics to Event.
  • Complete the testing and documentation of this part of Event.

MINESTONE: Being able to use Event and other management modules normally, managers can smoothly perform operations on specific events through the management page.

July 31st ~ August 13th (2 weeks)

  • Add special service support for Event, which needs to consider as many situations as possible after collecting enough information and implement them.
  • Add support for individual documentation pages for each individual Event.
  • Complete the testing and documentation of this part of Event.

August 14th ~ August 27th (2 weeks)

  • Deploy Demo, conduct internal testing, listen to community feedback, fix bugs.
  • Flexible development time, improving the functions that were not fully implemented in the previous stage.
  • Submit all code and documentation, prepare final report.

「GSoC 2023 Proposal」Talawa-Admin: Improved People and Newsfeed Management
https://ligen.life/2023/gsoc-2023-talawa-admin-proposal/
作者
ligen131
发布于
2023年4月4日
更新于
2023年4月4日
许可协议