GSoC

GSoC 2024

Welcome to the C2SI Google Summer of Code (GSoC) 2024 project ideas page.

This is the 7th time that we are participating in the GSoC, we will use this page to develop possible project ideas that have on the above mentioned areas. Please note that anyone who is interested can participate in this process. You do not have to be a GSoC student or mentor to suggest possible project ideas.

You can also talk to us about possible project ideas and we are happy to improve or heip you with them. Please keep in mind that projects need to be realistically something that is able to be functionally completed by a student working full time for about eight weeks. Thanks!

Important Guidelines on Submitting Ideas

There are some important guidelines to submit ideas, please read these carefully before adding your ideas!

  1. There is a fixed time period for implementing and coding your ideas.
  2. Come up with attainable goals and you will be able to complete what you set out to do. You can always contact our mentors and community and get an idea about the workload and whether you might be able to complete them.
  3. You are free to come up with your own ideas. The ideas should be about Internet of Things (IOT), Computer Security and Software Tools. Also if you love to work on any of these subjects but do not have an idea you can always contact us.
  4. Lets Talk! The best way to solve problems that you might have is to contact our mentors and also our community.
  5. We encourage you to do documentation so that we can keep track of your progress and also help you if things are not going according to plan. Although not compulsory we have a strong belief that this method can cut down your time to code and also the workload of the mentors drastically.
  6. Please send your new project ideas to gsoc[at]c2si.com



Idea List for 2024

The following is the idea list for Google Summer of Code 2024

1. ProjectExplainer - Add knowledge graph based retrieval and explanation APIs for code and text modalities in documentation.

Brief explanation
ProjectExplainer project is a set of tools to help with explaining code repositories using large language models.

At this point, ProjectExplainer supports a small set of API’s to provide summarization or explanation capabilities over GitHub based code repositories by parsing through readme’s and pulling important pieces of information which is then provided as prompt to an LLM to produce summarization.

With this GSoC project, we wish to include knowledge graphs to embed GitHub repository code and text modalities to use that as a retrieval interface for the LLM to perform summarization/explanation task.

Expected Results
At the end of the GSoC term, we expect integration of knowledge graphs for both text and code modalities and expose another set of API’s for summarization or explanation tasks.

Required Knowledge
Python, Neo4j, Large Language Models, Hugging Face, Pytorch, Knowledge Graphs.

Possible Mentors
Mehant Kammakomati

Estimate Project Length
350hr

Github Url
https://github.com/c2siorg/Project-Explainer

Difficulty
Medium

Slack channel
project-explainer

2. WebiU 2.0 :- c2siorg/SCoRe Lab website

Brief explanation
The proposed project aims to create a dynamic organization website that automatically fetches project information from GitHub repositories. This eliminates the need for manual data entry, ensuring real-time updates on the organization’s website whenever a new repository is created or existing is updated. The website will also feature a configurable project template that provides essential details such as project title, description, technology stack, live demo availability, and more.

– Admin Controls: Create an admin control panel to manage the display of projects on the website. This includes the ability to show/hide specific projects and modify their display settings.

– Backend Integration: Choose a backend solution (e.g., AWS, MongoDB) to store and manage additional data, such as admin configurations and website settings.

– Documentation: Improve and maintain documentation related to the development areas, ensuring clarity for future contributors.

Expected Results
By the end of the project, the dynamic organization website should seamlessly integrate with GitHub repositories, displaying accurate and up-to-date information. The website’s configurable project template will allow administrators to control which projects are showcased on the site, providing flexibility and customization options

Knowledge Prerequisites
Proficiency in Angular, TypeScript, and JavaScript is essential for this project. Familiarity with backend technologies like AWS or MongoDB is beneficial. Additionally, understanding GitHub API and web development concepts will be advantageous.

Mentor
Mahender Goud Thanda (Maahi10001)

Estimate Project Length
350hr

Github URL
https://github.com/c2siorg/Webiu

Difficulty
Medium

Slack channel
WebiU

3. Rust Cloud

Brief explanation
RustCloud is a rust library which hides the difference between different APIs provided by varied cloud providers (AWS, GCP, Azure etc.) and allows you to manage different cloud resources through a unified and easy to use API.

Documentation
Improve and maintain documentation related to the development areas, ensuring clarity for future contributors.

Knowledge Prerequisites
Rust, Google Cloud Platform

Expected Results
By the end of the project, API for BigQuery, Vertex AI, GenAI

Mentor
Pratik Dhanave

Github Url
https://github.com/c2siorg/RustCloud

Estimate Project Length
350hr

Difficulty
Medium

Slack channel
rust-cloud

4. Bug Connector

Brief explanation
The objective of this project is to develop a public dataset derived from openly available Common Vulnerabilities and Exposures (CVE) information. The primary goal is to create a set of fully functional scrapers designed to collect CVE data from various sources, augment this data with comprehensive data points, and make it publicly available. Data sources and data structures will be announced in due course.

Knowledge Prerequisites
– Basic understanding of cybersecurity concepts, especially related to vulnerabilities and exposures.
– Proficiency in programming languages used for web scraping (e.g., Python).
– Familiarity with data manipulation and storage techniques.
– Knowledge of web technologies and protocols.

Expected Results
– Development of a reliable and efficient web scraping framework capable of collecting CVE data from specified sources.
– A comprehensive dataset that includes detailed information on vulnerabilities, such as descriptions, severity ratings, impacted systems, and mitigation measures.
– Regular updates to the dataset as new CVE information becomes available.
– Documentation on the data collection process, data structure, and usage guidelines for the dataset.

Mentors
Ravindu

Github Url
https://github.com/c2siorg/bug-connector

Estimate Project Length
350hr

Difficulty
Medium

Slack channel
bug-connector

5. GDB UI

Brief explanation
GDB, the GNU Debugger, is a versatile and widely used debugger for several programming languages such as C, C++, and Ada. It enables developers to see what is happening inside a program as it runs, which is invaluable for debugging and fixing code issues. GDB boasts a variety of features, including the ability to start and stop program execution, examine the state of the program (variables, registers, memory, etc.), among others.

Although GDB operates within a terminal, this project’s mission is to develop a user interface (UI) utilizing React. This UI will specifically interact with the GDB Python API, creating a dashboard that eases the use of GDB’s features through a graphical interface. This initiative strives to provide a more intuitive and accessible way for developers to execute commands and control operations using the GDB Python API.

Knowledge Prerequisites
– Proficiency in React and modern web development practices.
– Familiarity with the Python programming language and creating Python bindings or interfaces.
– Basic understanding of debugging concepts and experience with GDB or similar debugging tools.
– Knowledge of software development principles and version control (e.g., Git).

Expected Results
– By the end of the project, the following outcomes are anticipated:
– A fully functional React-based UI for GDB that allows users to perform debugging tasks graphically.
– Integration with the GDB Python API for executing commands and retrieving program states.
– User-friendly documentation on how to set up, use, and extend the UI.
– A set of features including, but not limited to, starting/stopping program execution, inspecting variables, registers, and memory, and a log or console view for command output and error messages.
– Contribution guidelines for the open-source community to further enhance and develop the UI.

Mentors
Ravindu

Github Url
https://github.com/c2siorg/GDB-UI

Estimate Project Length
350hr

Difficulty
Medium

Slack channel
gdb-ui

6. CodeLabz - Deploy the first working Version of the site.

Brief Explanation
CodeLabz is a platform where the users can engage with online tutorials and the organizations can create tutorials for the users. Currently, the project is lacking some features.
Completing the following will ensure the deployment of the first live working version of codelabz.
– Like/Dislike Feature Implementation:
Implement database interactions for user likes and dislikes.
Ensure the feature aligns with the existing database design.
– Completing The Tutorial Page:
Resolve minor bugs affecting the tutorial page, including issues with comments and author data.
Implement recommendations for users on the tutorial page.
– Notification System:
Develop backend logic for a notification system.
Ensure seamless integration with the existing platform for real-time updates.
– Recommender System for Feed Tutorials:
Implement algorithms for generating recommended tutorials based on user preferences.
Integrate the recommender system into the platform’s feed functionality.Displaying Tutorials on Profile Pages: displaying tutorials on user profile pages.
– Rebuilding CI/CD Pipeline:
Evaluate and update the existing CI/CD pipeline for the Codelabz site.
– Managing Org-Setting Including Roles:
Develop functionalities for managing organization settings.
Implement role-based access control to ensure secure and controlled access.
– Searching Tutorials through Tags and Titles:
Implement a robust search mechanism for tutorials based on tags and titles.
Optimize search algorithms for quick and accurate results.
– Tutorials Creation By Individual Users
– Rendering Dynamic Data:
Sidebar for Contributors and Who to Follow on home page.
– Verification on Signup:
Implement a secure verification process during user signup.
Ensure user accounts are validated and authenticated for enhanced security.
– Updating Minor dependencies and migration to Typescript.

Expected results
At the end of this summer we expect that All the listed tasks will be implemented, And the first version of codelabz website will be live.

Knowledge Prerequisite
Javascript, React.JS, Node.JS, Firebase

Mentor
Abhishek Pandey, Shiva Nanda Reddy.

Github Url
https://github.com/c2siorg/Codelabz

Estimate Project Length
350hr

Difficulty
Medium

Slack channel
codelabz

7. NFT-TOOLBOX

Description
An npm package for seamless integration of all NFT related functionalities in Web2 projects. This project helps web2 developers seamlessly integrate web3 functionality.

Expected Results
Currently we are able to mint NFT on Ethereum chain and upload metadata to multiple storage services. The current task is to improve the existing stuff with multi-chain support like Solana, Tezos and EVM compatible chains, add more ERC’s support, make different types of on-chain and off-chain algorithms for super fast batch minting of NFT and add support for Soulbound NFTs, dynamic NFT and nested NFT. A website with all these functionalities needs to be created along with required smart contracts.
Features we would like to implement in NFT-ToolBox Project:
– You need to refactor code
– Add onchain and offchain Batch Minting Support
– Add Multiple ERC support related to nfts in easy and feasible manner
– Add support for Solana NFT’s
– Add Support for Tezos NFT’s
– Add support for Flow Blockchian NFT’s
– Add support for Aptos Blockchian NFT’s
– Add Support for Cross Chain NFT’s
– Build An UI to mint NFT’s on any chain
– Make UI to deploy different kinds of NFT standards (Something like Thirdweb)
Note: You don’t need to implement all these features this year. You have to come up with proposal of what things can be implemented in the GSoC timeline and How.

Required Knowledge
Solidity, NFT, Blockchain, Rust, Nodejs, Rust, ReactJs, Typescript, Cadence, Move

Mentors
Mohit Bhat

Github Url
https://github.com/scorelab/NFT-Toolbox

Estimate Project Length
350hr

Difficulty
Medium

Slack channel
nft-toolbox

8. ImageLab

Brief explanation
ImageLab is a standalone tool that supports anyone to get started with image processing-related concepts and techniques in an interactive, less logical way. So, this tool enables and also motivates fresh users to understand how image processing concepts work by interacting with ImageLab. The upcoming enhancements for ImageLab in this year’s Google Summer of Code aim to significantly augment its user experience and broaden its applicability across various use cases.

Expected results
Our goal is to transform ImageLab into a more versatile and user-engaging platform. The enhancements are targeted towards facilitating real-world applications and improving user interaction.
– Integrate real-time video processing capability.
– Transition the application’s architecture from an experiment-centric to a project-based approach.
– Develop a project library for easy management and retrieval of user projects.
– Implement user profile functionality for personalized experiences
– Allow users to save their work on the cloud for easy access and collaboration.
– Implement features to collect user analytics and feedback within the application.
– To make ImageLab globally accessible, add support for multiple languages in the user interface.
– Incorporate interactive tutorials, guides, and educational content within the tool to help users learn image processing concepts as they use ImageLab.
Please contact the mentor with a draft of the proposal before submitting the application.

Knowledge Prerequisite
Javascript / Typescript, OpenCV

Mentor
Oshan Mudannayake ([email protected]), Shan

GitHub URL
https://github.com/c2siorg/imagelab

Estimate Project Length
350hr

Difficulty
Medium

9. TensorMap

Brief explanation
TensorMap is a web application that will allow the users to create machine learning algorithms visually. TensorMap supports reverse engineering of the visual layout to a Tensorflow implementation in preferred languages. The goal of the project is to let the beginners play with machine learning algorithms in Tensorflow without less background knowledge about the library.

Expected results
– Dockerize the backend.
– Fix the current issues.
– Fix the workflow including the neural architecture design.
– Add more nodes.
– Write and publish documentation on how to extend and add new nodes.
Please contact the mentor with a draft of the proposal before submitting the application.

Knowledge Prerequisite
Tensorflow, Javascript

Mentor
Oshan Mudannayake ([email protected]), Udesh

GitHub URL
https://github.com/c2siorg/tensormap

Estimate Project Length
350hr

Difficulty
Hard

10. DataLoom

Brief explanation
The goal of this project is to design and implement a web-based GUI for data wrangling, aimed at simplifying the process of managing and transforming tabular datasets. This application will serve as a graphical interface for the powerful Python library, pandas, allowing users to perform complex data manipulation tasks without the need for in-depth programming knowledge. Users will be able to log in, upload their datasets, apply various transformations, and export their results, all through an intuitive and user-friendly interface.

Expected results
– A web application that allows users to securely log in and manage their tabular datasets.
– The ability to upload, view, and download datasets in various formats (CSV, Excel, etc.).
– A GUI that provides intuitive access to common data transformation tasks (filtering, sorting, joining, etc.) using pandas functionalities.
– Real-time preview of data transformations to facilitate immediate feedback.
– User-specific workspaces where transformations can be saved and revisited. Comprehensive documentation on how to use the application, along with examples of common data wrangling tasks.
– A scalable and secure backend architecture using FastAPI to handle requests and perform data transformations.

Please contact the mentor with a draft of the proposal before submitting the application.

Knowledge Prerequisite
Python, Pandas library, Frontend technologies like HTML, CSS, and JavaScript frameworks (React recommended), FastAPI (preferable

Mentor
Oshan Mudannayake ([email protected])

Github Url
https://github.com/c2siorg/DataLoom

Estimate Project Length
350hr

Difficulty
Medium

11. ProjectExplainer - Validating project explanations

Brief explanation
ProjectExplainer project is a set of tools to help with explaining code repositories using large language models.

At this point, ProjectExplainer supports a small set of API’s to provide summarization or explanation capabilities over GitHub based code repositories by parsing through readme’s and pulling important pieces of information which is then provided as prompt to an LLM to produce summarization.

With this GSoC project, we wish to include knowledge graphs to embed GitHub repository code and text modalities to use that as a retrieval interface for the LLM to perform summarization/explanation task.

Expected Results
At the end of the GSoC term, we expect the validation stage is setup right in order validate the project explanations.

Required Knowledge
Python, Language Models, Hugging Face, Pytorch, Evaluation Metrics, Summarization.

Possible Mentors
Mehant Kammakomati

Estimate Project Length
350hr

Github Url
https://github.com/c2siorg/Project-Explainer

Difficulty
Medium

Slack channel
project-explainer

12. B0Bot

Brief explanation
In this project, our objective is to develop a CyberSecurity News API tailored for automated bots on social media platforms. It is a cutting-edge Flask-based API that grants seamless access to the latest cybersecurity and hacker news. Users can effortlessly retrieve news articles either through specific keywords or without, streamlining the information acquisition process.

Once a user requests our API, it retrieves news data from our knowledge base and feeds it to an LLM. After the LLM processes the data, the API obtains the response and returns it in JSON format..

Expected results
At the end of the GSoC term, we expect integration of an LLM to the B0Bot.

Knowledge Prerequisite
Python, Large Language Models, Hugging Face, Pytorch, API development (Flask), NLP, Database Management, MongoDB, LangChain, Prompt Designing

Mentors
Nipuna Weerasekara, Tingyuan

Estimate Project Length
350hr

Github Url
https://github.com/c2siorg/b0bot

Difficulty
Medium

Slack channel
b0bot