Skip to content

Commit

Permalink
Update ideas-20250101.md
Browse files Browse the repository at this point in the history
  • Loading branch information
palisadoes authored Feb 2, 2025
1 parent 87eecc1 commit 92c5597
Showing 1 changed file with 155 additions and 128 deletions.
283 changes: 155 additions & 128 deletions docs/internships/gsoc/ideas-20250101.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,52 +113,52 @@ Your solution should ideally consider the:

We will not support administrative functions in any of our mobile apps.

### Admin Plugins
---

### Talawa Admin Plugins

1. **Description:**
Fix and enhance the Talawa plugin system for improved extensibility, usability, and support for additional functionalities such as payment system integration. The current plugin system does not allow for the upload of source code into a predefined directory structure, limiting external contributions. This needs to be refactored to operate similarly to systems like WordPress plugins, VS Code extensions, and Chrome browser extensions.

2. **Expected Outcomes:**

1. **Plugin System:**
- Replace the existing plugin system with a more robust architecture allowing contributors to upload source code into a predefined directory structure.
- Support multiple external contributors to the Talawa code base.
- Operate similarly to WordPress plugins, enabling flexible and modular integrations.
1. Replace the existing plugin system with a more robust architecture allowing contributors to upload source code into a predefined directory structure.
1. Support multiple external contributors to the Talawa code base.
1. Operate similarly to WordPress plugins, enabling flexible and modular integrations.
2. **Payment System Integration:**
- Refactor the plugin system to allow selective uploads of code for integrating payment systems, on a per-provider basis.
- Examples:
- PayPal integration as one plugin.
- Razorpay integration as another plugin.
- Use the WordPress plugin methodology as a guide.
- Maintain separate repositories (e.g., `Talawa-plugin-*`) for different plugins to support this functionality.
1. Refactor the plugin system to allow selective uploads of code for integrating payment systems, on a per-provider basis.
1. Examples:
1. PayPal integration as one plugin.
2. Razorpay integration as another plugin.
1. Use the WordPress plugin methodology as a guide.
1. Maintain separate repositories (e.g., `Talawa-plugin-*`) for different plugins to support this functionality.
3. **AI for Usability:**
- **Primary Features:**
- Implement AI-driven SPAM filtering.
- Use AI for fact-checking comments.
- **Secondary Features:**
- Suggest improvements to event attendance.
- Propose volunteers for events.
- Generate announcements that yield better response rates.
- Integrate AI functionality into a separate repository for scalability.
1. **Primary Features:**
1. Implement AI-driven SPAM filtering.
2. Use AI for fact-checking comments.
2. **Secondary Features:**
1. Suggest improvements to event attendance.
2. Propose volunteers for events.
3. Generate announcements that yield better response rates.
3. Integrate AI functionality into a separate repository for scalability.
4. **Refactoring:**
- Reduce technical debt in the Talawa Mobile and Talawa Admin code bases.
- Improve security to meet modern standards.
1. Reduce technical debt in the Talawa Mobile and Talawa Admin code bases.
2. Improve security to meet modern standards.

3. **References:**

- https://github.com/PalisadoesFoundation/talawa-admin/pull/580#issuecomment-1463387821

4. **Repos to update:**

- Talawa
- Talawa-API
- Talawa-Admin

5. **Depends on Project:** - N/A
6. **Project Size:** - 400 hours (Large)
7. **Possible Mentors:** - Tasneem
8. **Difficulty:** - Medium
9. **Impact Definition:** - Core development
1. Talawa
2. Talawa-API
3. Talawa-Admin
5. **Depends on Project:** N/A
6. **Project Size:** 400 hours (Large)
7. **Possible Mentors:** Tasneem Koushar
8. **Difficulty:** Medium
9. **Impact Definition:** Core development

---

Expand All @@ -167,119 +167,162 @@ We will not support administrative functions in any of our mobile apps.
1. **Description:**
Refactor the Talawa Mobile code base to reduce technical debt, enhance performance, improve security, and optimize usability. Address specific issues related to notifications, event management, and UX improvements.

2. **Expected Outcomes:**
2. **Expected Outcomes:** We require the following:

- **Security Enhancements:**
- Strengthen security, especially for file uploads, and implement measures to combat malicious content.
- **Notifications:**
- Build a robust notification system for Talawa Mobile.
- **Event Guest Invitations:**
- Introduce functionality to invite guests to events through the app.
- **Semiotics for UX Improvement:**
- Augment text with symbols to improve accessibility and usability for users with limited literacy.
1. **Security Enhancements:**
1. Strengthen security, especially for file uploads, and implement measures to combat malicious content.
2. **Notifications:**
1. Build a robust notification system for Talawa Mobile.
3. **Event Guest Invitations:**
1. Introduce functionality to invite guests to events through the app.
4. **Semiotics for UX Improvement:**
1. Augment text with symbols to improve accessibility and usability for users with limited literacy.
5. **General:**
1. Maximize the use of reusable code
1. Optimize GraphQL queries to minimize the volume and type of unnecessary results

3. **Repos to update:**

- Talawa
- Talawa-Mobile
1. Talawa
2. Talawa-Mobile

4. **Depends on Project:** - N/A
5. **Project Size:** - 300 hours (Large)
4. **Depends on Project:** N/A
5. **Project Size:** 300 hours (Large)
6. **Possible Mentors:** Noman Khan
7. **Difficulty:** - Medium
8. **Impact Definition:** - Core development
7. **Difficulty:** Medium
8. **Impact Definition:** Core development

---

### Refactoring - Talawa Admin

1. **Description:**
Refactor the Talawa Admin code base to reduce technical debt, enhance security, and introduce new features. Focus on improving event management, offline capabilities, and chat functionality while ensuring the code meets modern best practices.

2. **Expected Outcomes:**

- **Security Enhancements:**
- Ensure secure handling of data and resolve any vulnerabilities in the admin panel.
- **Event Guest Invitations:**
- Add functionality to invite guests to events from the admin panel.
- **Offline Capabilities:**
- Enable offline functionalities for the admin interface to improve usability in low-connectivity scenarios.
- **Chat Feature:**
- Refactor the chat system for better performance and integration with other features.

1. **Security Enhancements:**
1. Ensure secure handling of data and resolve any vulnerabilities in the admin panel.
2. **Event Guest Invitations:**
1. Add functionality to invite guests to events from the admin panel.
3. **Offline Capabilities:**
1. Enable offline functionalities for the admin interface to improve usability in low-connectivity scenarios.
4. **Chat Feature:**
1. Refactor the chat system for better performance and integration with other features.
5. **General:**
1. Maximize the use of reusable code
2. Optimize GraphQL queries to minimize the volume and type of unnecessary results
3. **Repos to update:**

- Talawa
- Talawa-Admin

4. **Depends on Project:** - N/A
5. **Project Size:** - 300 hours (Large)
6. **Possible Mentors:** - Rishav
7. **Difficulty:** - Medium
8. **Impact Definition:** - Core development
1. Talawa
2. Talawa-Admin
4. **Depends on Project:** N/A
5. **Project Size:** 300 hours (Large)
6. **Possible Mentors:** Rishav Jha
7. **Difficulty:** Medium
8. **Impact Definition:** Core development

---

### Accessibility for Blind Users
### Talawa Accessibility for Blind Users

1. **Description:**
Enhance Talawa’s accessibility features to support blind and visually impaired users. This includes transcription for voice messages, text-to-speech functionality, screen reader integration, and voice-activated commands.

2. **Expected Outcomes:**

- **Transcription for Voice Messages:**
- Convert voice messages to text using the Google Speech-to-Text API.
- Display transcriptions below voice messages.
- Implement optional language detection for user-preferred language transcription.
- **Text-to-Speech for Transcription:**
- Provide TTS functionality using the Flutter TTS plugin to read transcribed text aloud.
- **Screen Reader Integration:**
- Ensure all voice messages and transcriptions are properly read by screen readers (e.g., TalkBack for Android, VoiceOver for iOS).
- Ensure navigation compatibility with assistive technologies for seamless interactions.
- **Voice-Activated Commands:**
- Add support for voice commands to play recent messages, start recording, or access transcriptions without touch gestures.
- **Media Playback:**
- Implement a media player for seamless voice message playback with accessibility features.
1. **Transcription for Voice Messages:**
1. Convert voice messages to text using the Google Speech-to-Text API.
1. Display transcriptions below voice messages.
1. Implement optional language detection for user-preferred language transcription.
2. **Text-to-Speech for Transcription:**
1. Provide TTS functionality using the Flutter TTS plugin to read transcribed text aloud.
3. **Screen Reader Integration:**
1. Ensure all voice messages and transcriptions are properly read by screen readers (e.g., TalkBack for Android, VoiceOver for iOS).
1. Ensure navigation compatibility with assistive technologies for seamless interactions.
4. **Voice-Activated Commands:**
1. Add support for voice commands to play recent messages, start recording, or access transcriptions without touch gestures.
5. **Media Playback:**
1. Implement a media player for seamless voice message playback with accessibility features.

3. **Repos to update:**

- Talawa
- Talawa-Mobile

4. **Depends on Project:** - N/A
5. **Project Size:** - 300 hours (Large)
6. **Possible Mentors:** - Noman Khan
7. **Difficulty:** - Medium
8. **Impact Definition:** - Inclusive development
4. **Depends on Project:** N/A
5. **Project Size:** 300 hours (Large)
6. **Possible Mentors:** Noman Khan
7. **Difficulty:** Medium
8. **Impact Definition:** Inclusive development

---

### Enhanced Testing
### Talawa Enhanced Testing

1. **Description:**
Improve the testing strategy across all Talawa codebases to ensure high-quality, secure, and maintainable code. Address issues like memory leaks, poor business logic, and lack of comprehensive test coverage. Integrate AI-driven tools for testing automation and efficiency.

2. **Expected Outcomes:**

- **Unit Testing with AI:**
- Use AI tools like CodeRabbit.ai to create unit tests for all modules in the Talawa application.
- **Memory Management Improvements:**
- Utilize tools like Keploy or Tramline to optimize memory usage and reduce application bloat.
- **End-to-End Testing:**
- Perform E2E tests for the Talawa Admin and Mobile codebases using tools like Puppeteer and Jest.
- Reference: [Talawa Admin Pull Request #580](https://github.com/PalisadoesFoundation/talawa-admin/pull/580#issuecomment-1463387821).
- **Prevent Bad Practices:**
- Implement mechanisms to catch and prevent poor coding practices, improving the codebase’s robustness and maintainability.
1. **Unit Testing with AI:**
1. Use AI tools like CodeRabbit.ai to create unit tests for all modules in the Talawa application.
2. **Memory Management Improvements:**
1. Utilize tools like Keploy or Tramline to optimize memory usage and reduce application bloat.
3. **End-to-End Testing:**
1. Perform E2E tests for the Talawa Admin and Mobile codebases using tools like Puppeteer and Jest.
1. Reference: [Talawa Admin Pull Request #580](https://github.com/PalisadoesFoundation/talawa-admin/pull/580#issuecomment-1463387821).
4. **Prevent Bad Practices:**
1. Implement mechanisms to catch and prevent poor coding practices, improving the codebase’s robustness and maintainability.

3. **Repos to update:**

- Talawa
- Talawa-Admin
- Talawa-Mobile

4. **Depends on Project:** - N/A
5. **Project Size:** - 300 hours (Large)
6. **Possible Mentors:** - TBD
7. **Difficulty:** - Medium
8. **Impact Definition:** - Core development
4. **Depends on Project:** N/A
5. **Project Size:** 300 hours (Large)
6. **Possible Mentors:** TBD
7. **Difficulty:** Medium
8. **Impact Definition:** Core development
---

### Self Hosted Talawa Notification System

1. **Description:**
We need a notification system for Talawa that is designed to be flexible and scalable. Notifications must be be personalized, routed through different channels, and logged for auditing purposes.
2. **Expected Outcomes:**
1. **Notification Template:**
1. Admin created, stored in the DB
1. Blueprint for creating notifications.
2. Defines the content, type, title, and channel (e.g., email, SMS, or in-app notification).
3. The possibility of dynamic variables being injected into the template for personalization.
2. **Notification Log:**
1. Maintains a structured DB log of all notifications sent to users or organizations.
2. Includes details about the sender, recipient, status, and any dynamic data (variables)
3. The ability to be queried for delivery statistics, status tracking, usage patterns.
3. **Delivery:**
1. Notifications routed to the appropriate channel (email, in-app, or SMS) based on the template.
2. Additional features for possible frontend deep linking.
4. **Engines & Services:**
1. Sound scalable methodologies must be found to implement the feature.
1. **Example:**
1. A new event is created.
2. An administrator creates a template: "Hello `{{userName}}`, a new event `{{eventName}}` is live!"
3. The backend triggers notifications:
1. Template: Event Update.
2. Variables: `{ userName: "Alice", eventName: "Hackathon"}`.
4. The Notification Engine sends personalized messages to all users.

3. **Repos to update:**
1. Talawa
2. Talawa-Admin
3. Talawa-API
4. **Depends on Project:** N/A
5. **Project Size:** 300 hours (Large)
6. **Possible Mentors:** Disha Talreja
7. **Difficulty:** Medium
8. **Impact Definition:** Core development

---

## SwitchMap-NG Areas

Expand All @@ -297,6 +340,8 @@ This created additional complexity in the configuration and management of the ap
1. The `FlaskTable` package is incompatible with newer python versions.
2. `SQLAlchemy` package has had a major release upgrade

---

### Enhanced SwitchMap-NG Web Features

1. **Description:** The current web UI/UX needs to be improved to increase the usage of SwitchMap-NG by the wider community.
Expand Down Expand Up @@ -335,6 +380,8 @@ This created additional complexity in the configuration and management of the ap
8. **Difficulty:** Medium
9. **Impact Definition:** Risky/Exploratory

---

### Enhanced SwitchMap-NG Scalability

For the purposes of this section, the term `polling` should be interpreted as periodic data gathering.
Expand All @@ -356,7 +403,7 @@ For the purposes of this section, the term `polling` should be interpreted as pe
1. The current approach stores posted data to disk with periodic database updates.
2. The speed of processing the data may have optimization potential.
3. Different data types may require different polling intervals, for example device performance data versus device status data.
1. This may require optimized purpose specific data gathering approaches.
1. This may require optimized, separate, purpose specific data gathering approaches.
4. Historical Data Storage
1. Use the current state database to more effectively store and analyze historical network data, such as port utilization, interface bandwidth rates, device status, and ARP data over time. This would allow users to analyze trends and detect issues that may have developed gradually.
5. Additional Data Collection
Expand All @@ -372,13 +419,13 @@ For the purposes of this section, the term `polling` should be interpreted as pe
3. We need an easy to use installation and configuration script for the web UI.
1. The structure of the configuration files could be improved.
8. Documentation (Priority)
9. Create autogenerated markdown documentation for developers from the code base based on code comments.
1. This is already done in our Talawa\* repositories.
2. GitHub actions must be created to ensure that the auto-generated documentation is formatted according to our standards.
10. The site must be autoupdated whenever the markdown mentioned in this section is changed.
11. Testing (Priority)
12. We want to achieve 100% test code coverage for the repository using GitHub actions
13. We also want GitHub actions to fail if codecov.io code coverage criteria are not met and coderabbit.io does not approve the PR.
1. Create autogenerated markdown documentation for developers from the code base based on code comments.
1. This is already done in our Talawa\* repositories.
2. GitHub actions must be created to ensure that the auto-generated documentation is formatted according to our standards.
2. The site must be autoupdated whenever the markdown mentioned in this section is changed.
9. Testing (Priority)
1. We want to achieve 100% test code coverage for the repository using GitHub actions
2. We also want GitHub actions to fail if codecov.io code coverage criteria are not met and coderabbit.io does not approve the PR.
3. **Repos to Update:** SwitchMap-NG
4. **Skills Required:** Proficiency in the code stacks related to the repository. Refer to the introduction section for more details.
5. **Depends on Project:** `Enhanced SwitchMap-NG Web Features`
Expand All @@ -388,27 +435,7 @@ For the purposes of this section, the term `polling` should be interpreted as pe
8. **Difficulty:** Medium
9. **Impact Definition:** Risky/Exploratory

## Pattoo Areas

Pattoo is a suite of ETL applications that store time series data with various visualization features.

### Enhanced Pattoo Web Features

1. **Description:** We want to make Pattoo more user-friendly and versatile for non-technical users and organizations that need actionable insights quickly.
2. **Expected Outcomes:**
1. UI/UX
1. Improve the frontend by adding a powerful, customizable dashboard where users can visualize their data in real-time. Implement features like drag-and-drop widgets, custom graph types, and time-window selection for better insights. Your solution may or may not be written in Python.
1. Testing
1. We want to achieve 100% test code coverage for the repository using GitHub actions
1. We also want GitHub actions to fail if codecov.io code coverage criteria are not met and coderabbit.io does not approve the PR.
3. **Repos to Update:** Pattoo
4. **Skills Required:** Proficiency in the code stacks related to the repository. Refer to the introduction section for more details.
5. **Depends on Project:** N/A
6. **Project Size:** 350 hours (Large)
7. **Possible Mentors:**
1. TBD
8. **Difficulty:** Medium
9. **Impact Definition:** Risky/Exploratory
---

## Hybrid Areas

Expand Down

0 comments on commit 92c5597

Please sign in to comment.