「GSoC 2023 Proposal」Talawa-Admin: Improved People and Newsfeed Management
本文最后更新于:2023-04-04 23:07:20 UTC+08:00
About Me
Name: Gen Li
University: Huazhong University of Science and Technology, Wuhan, Hubei Province, China
Graduation Date: June, 2025
Major: Computer Science
Email: i@ligen131.com
Telephone: +86 [Deleted]
Country of Residence: China
Timezone: China Standard Time (CST), GMT+8
Primary Language: Simplified Chinese, English
Personal Website: https://ligen131.com
GitHub Profile: https://github.com/ligen131
GitHub avatar:
Major Awards Related to Programming:
- Gold Medal, The 2022 CCPC China Collegiate Programming Contest Weihai Regional Contest, November 6th, 2022
- Silver Medal, The 2022 ICPC International Collegiate Programming Contest Asia East continent Final Contest, Shanghai, March 25th, 2023
- Silver Medal, The 2022 CCF Collegiate Computer Systems & Programming Contest (CCSP), December 16th, 2021
Open Source Experience:
- Node.js/TypeScript Chatbot Developer at Wechaty Organization
- Node.js Online Judge System Contributor at SYZOJ Organization
- Personal open-source project:
- Cyber Lighthouse, Golang: Including a simple DNS query client (likes command
dig
in Linux) and a DNS local cache server - miniob, C++: A small database kernel that implements the most basic functions of a database that can be queried by SQL.
- Cyber Lighthouse, Golang: Including a simple DNS query client (likes command
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
单独开一个类似 User
和 Admin
的 base constraint 比较好,其会被用于将志愿者相关事件与组织的活动统一起来。
我在此处简要列出 Event
所需要支持的相关参数。在实现 User
的相关功能时,也需要对 User
和 Admin
进行比较大的改动。
时间和地点 of
Event
:所有事件必不可少的两个要素。出席成员及其各自的角色与职业:角色分为:领导,管理者,工作人员(志愿者),贵宾,必须出席的成员,非必须出席的成员(被邀请者)(此处各自的角色应该只是一个标签类型,详细的权限管理应该在
User
处实现。)。职业需要参与人员自行填写,或者给出下拉框以供选择,如 IT 工程师、教师、宗教人员、厨师等等。另外,应该实现可以根据不同标签筛选人员,并对他们进行批量操作的功能(如签到、评价、删除等,直接调用User
中实现的功能)。考勤状态:出席成员签到、签退时间,可以根据日期与时间筛选不合格人员。
通知:不同的通知会被发给不同角色的人。管理者应当可以自定义通知发送的方式(如邮件、SMS、移动软件 notice 等)、时间、文本内容、紧急程度、是否需要回复等参数。管理者还能查看关于通知的查看状态、回复信息、统计数据等,并能够便捷地对回复进行操作(如为
Event
增删志愿者等)。特殊服务:由于该软件会被各行各业的人员使用,所以应当把一些行业的特殊服务也考虑在内。
托儿所:父母与孩子的身份附属关系需要在
User
中实现。孩子是否需要托管服务,托管任务分配到哪些人等问题都需要在Event
中体现。直播行业:线上直播平台、链接。或许可以实现直接将直播平台嵌入到
Talawa
中来。普遍的行业:大多数组织组织活动都需要给出席人员足够的活动资料以更好地让他们参与其中。需要为
Event
建立文档页面。
仪表盘与统计数据:为
Event
建立单独的仪表盘,便于管理者能够清楚地梳理近期活动流程、活动概况(如出勤率、志愿者工作水平、完成率等)。为Event
建立日历,日历上以日程形式放上即将或已经举行的事件。一些其他的细节:比如
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
.
Time and place of
Event
: two essential elements of all events.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 inUser
).Attendance status: attendance member check-in and check-out time, unqualified personnel can be screened according to date and time.
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.).Special services: Considering that the software will be used by people from various industries, special services for specific industries should be incorporated, such as:
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 inEvent
.Live broadcast industry: online live broadcast platforms and links. It may be possible to directly embed the live broadcast platform into
Talawa
.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
.
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 forEvent
, and put upcoming or past events on the calendar in the form of a schedule.Some other details: For example,
Admin
will temporarily grant someUser
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
andTalawa-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 betweenEvent
andUser
,Admin
, and add basic functions such as time, place, and attendance to theEvent
. - 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
inEvent
, occupation-related sections, and add the previously implemented authority management toEvent
. - 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.