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 Dec 30, 2024
1 parent d68b9bc commit e5a6892
Showing 1 changed file with 13 additions and 15 deletions.
28 changes: 13 additions & 15 deletions docs/internships/gsoc/ideas-20250101.md
Original file line number Diff line number Diff line change
Expand Up @@ -153,26 +153,26 @@ This created additional complexity in the configuration and management of the ap

1. **Description:** The current web UI/UX needs to be improved to increase the usage of SwitchMap-NG by the wider community.
2. **Expected Outcomes:**
1. Web UI/UX
1. Web UI/UX (Priority)
1. The code uses deprecated python packages that prevent upgrading the rest to current versions. The flask-table package is the most notable one
1. The UI looks dated because it uses the flask-table package for HTML tables. A more modern alternative is needed. This may or may not be written in Python.
1. The latest version offers many new features. We are eager to add new web based capabilities based on these additions that will increase the usage of SwitchMap-NG by the wider community.
1. Repository Strategy
6. Repository Strategy
1. We want to migrate from a monorepo to a polyrepo strategy. We feel this will:
1. Allow optimization of each subsystem's code using the appropriate best practices.
1. Reduce the learning curve to contribute.
1. Your plan must include an approach to convert the existing repository to support only the web front end.
1. Installation
2. Reduce the learning curve to contribute.
2. Your plan must include approaches to do this
1. Installation (Priority)
1. The current version requires the installation of system daemons. A method that improves any existing containerization for simplicity is needed.
2. Interaction between the equivalent replacements for the daemons must only communicate via existing GraphQL API calls for data.
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.
2. Documentation
2. Documentation (Priority)
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.
3. Testing
3. 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
Expand All @@ -188,13 +188,13 @@ This created additional complexity in the configuration and management of the ap

1. **Description:** SwitchMap-NG has multi-site capabilities, but we need more functionality for it to scale from a few to thousands of pollers.
2. **Expected Outcomes:**
1. Operation
1. Operation (Priority)
1. The app isn’t suitable for a distributed deployment with groups of pollers that may not have access to the central API server. There needs to be an intuitive way for:
1. pollers to reliably store and forward data to an aggregator in their region.
2. each regional aggregator to send data to the central API server
3. configuring this.
2. The solution must tolerate poor connectivity between the pollers and the API without loss of data for a configurable amount of time.
2. Asynchronous Polling
2. Asynchronous Polling (Priority)
1. The current python EasySNMP package is very resource intensive and must be replaced.
2. Consider replacing multiprocessing / threaded polling with a faster asynchronous polling mechanism using Python’s asyncio or aiohttp for better scalability. This would allow polling of larger networks without blocking and improve the overall speed and resource usage. This would facilitate faster data collection, more efficient resource utilization, and the ability to scale to large networks.
3. Another option would be to use a purpose built high performance SNMP application like MRTG/RRDTool to poll and/or evaluate the available SNMP parameters on the target devices.
Expand All @@ -209,20 +209,18 @@ This created additional complexity in the configuration and management of the ap
1. We want to migrate from a monorepo to a polyrepo strategy. We feel this will:
1. Allow optimization of each subsystem's code using the appropriate best practices.
2. Reduce the learning curve to contribute.
2. Your plan must include approaches to:
1. Create a separate poller repo
2. Create a separate API repo while maintaining the existing endpoint functionality.
7. Installation
2. Your plan must include approaches to do this
7. Installation (Priority)
1. The current version requires the installation of system daemons. A method that improves any existing containerization for simplicity is needed.
2. Interaction between the equivalent replacements for the daemons must only communicate via existing API calls. The RESTful posting of data to the DB API server’s file system should remain to reduce the potential overload unless a suitable alternative can be found.
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
8. Documentation (Priority)
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
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
Expand Down

0 comments on commit e5a6892

Please sign in to comment.