Skip to main content

GSoC 2024

This documentation provides an overview of all the projects completed during Google Summer of Code 2024. It serves as a resource for new contributors to explore project details, workflows, and future development opportunities.

Challenges encountered in each project are outlined, encouraging contributors to open issues and help refine the existing code or enhance the implemented solutions. The workflows aim to give contributors a clear high-level understanding of each project, facilitating their involvement and contributions effectively.

Chat Notification System

The aim of the project is to develop a self hosted chat for Talawa which facilitates communication amongst users and notifications. Key deliverables of the project are:

  1. Chat hoisted on the API server
  2. Available for 1 to 1 and 1 to many (group chat) options
  3. Automatically available to registered attendees of events as a dedicated group chat instance.
  4. Encrypted whenever and wherever possible
  5. Capable of allowing users to reply to any historical comment.
  6. Allow administrators to respond in various ways to complaints about chats.
  7. Have the ability for older chats to be purged from the system 8. Handle notifications on the local server

Project flow

alt text

Future Development Scope

  • Encryction-decryption logic could be improvised

Contributor

Disha Taneja

Event Attendance

This project will transform Talawa's event management capabilities. Administrators will gain valuable data-driven insights, streamlined workflows, and the ability to optimize events for maximum attendance and engagement

Workflow

alt text

Contributor

Shekha Patel

File Uploads And Security

The project aims to find a better solution for handling files uploaded from Talawa clients. It seeks to store files outside the code tree, access them using reliable libraries, deduplicate files, encrypt them, store them consistently regardless of their characteristics, and screen them for malicious content. Additionally, the default storage must be accessible via the system's locally accessible filesystem, with cloud storage services discouraged.

Solution Walthrough

  1. This project aim to avoid security threat of storing files in the project directory.
  2. Work done under this GSoC'24 project are below:
    1. Storing files in an open-source object storage system minio
    2. Adding all the CRUD operations for the minio integration
    3. Handling duplicate files using hashing
    4. Isolated the file upload APIs from other graphql APIs since these file upload APIs are Restful APIs
    5. File encryption
    6. Ensuring backup for both minio and mongoDb
    7. Admin & Org Admin will have access to take backup in minio server instance hosted in the our API server

Rationale on using REST API over Graphql

  1. GraphQL doesn't natively support uploads while REST APIs does.
  2. If graphQl would have been used then we would have to use 3rd party clients like appollo and though would increase the latency.
  3. GraphQl APIs inefficient when file size increases, hence would have affected streaming and downloads

Libraries & SDKs used

  1. aws sdk for minio operations
  2. npm package

Contributor

Aman Singh Chandel

Talawa Event Plugin

This project will transform Talawa's event management capabilities. Administrators will gain valuable data-driven insights, streamlined workflows, and the ability to optimize events for maximum attendance and engagement

Workflow

alt text

Contributor

Parag Gupta

Volunteer Management

Talawa Mobile, even though being a crucial part in the Talawa Suite of products, lags in implementation of various features related to events, fund campaigns, pledges and tags. Even some other features have old implementations leading to failing queries.

This project aims to bring Talawa Mobile application up to par with functionalities implemented in Talawa web User portal and Talawa API.

The project will add screens/components (conforming to Talawa UI/UX) to access following

  1. New event related features (attendees, Action Items, Event Agenda, Event Volunteers),
  2. Fund related features (Fund Campaigns, pledges)
  3. Tags (filtering\searching via user tags/event tags/ post tags).
  4. Apart from adding screens/components and implementing new features fixing issues and bugs plaguing already implemented features due to older implementation of GraphQL queries & mutations.

Workflow

alt text alt text

Contributor

Glen Dsouza

Tag Management System

  1. At present, Talawa lacks a robust Tag Management System.
  2. While the basic CRUD functionalities for user-specific tags have been implemented in the backend, these have not been incorporated into the frontend.
  3. Furthermore, the project does not currently support tags for other objects such as Events, Posts, Venues, etc.
  4. This proposal aims to enhance the tag management features, making them more effective and appealing.
  5. This will be achieved by improving the functionalities of user tags (for example, by adding support for hierarchical tags, automatic tags, group tag operations, etc.), and by establishing additional object-tag relations, such as Event tags, Post tags, etc.

Changes done during GSoC'24

  1. functionality to add parent-child tag
  2. CRUD operations based on tags
  3. Tag management (assignment-unassignment)
  4. Tag search functionality
  5. Filter user list owning the tag

Workflow

alt text alt text alt text alt text alt text alt text alt text alt text

Contributor

Meetual Rathore