asyncapi / community

AsyncAPI community-related stuff.
https://www.asyncapi.com/community
96 stars 101 forks source link

MentorShip Program 2023: Simulator Desktop Application #691

Closed NektariosFifes closed 1 year ago

NektariosFifes commented 1 year ago

In gsoc 2021 me and Jonas Lagoni created the asyncApi simulator which uses the Async Api specification and a related schema defined file to generate aynchronous traffic using asynchronous protocols.

https://github.com/asyncapi/simulator

For the mentorship program 2023 i aspire to turn the cli application into a full desktop application that aims to visualize an asyncApi file and allow the user to generate traffic in an interactive way. Along with the creation of the application i will create rich documentation for the project. I will specify further details regarding the desktop application in the following days.

The basic skeleton of the application is already done and can be installed on a windows system. However the functionality of the application is a major undertaking and will take time and consideration. The installer.exe is available in the latest release of the simulator.

dsfsdf

I am thinking of making the application depict the endpoints and servers in an interactive graph where the user will be able to connect the nodes and generate traffic.

Any thoughts?


Functional requirements

id Description
#F1 User should be able to use the toolbar to add a asyncapi file that describes the targeted api
#F2 User should be able to draw lines between operation and server nodes
#F3 With the use of the simulate button on the sidebar the user should be able to simulate traffic that is described by the node connections.
#F4 The user can click on the node connection and specify payload and headers for the event.
#F5 The user can specify sequences of requests to be executed. Sequences will be groups of nodes visually outlined in the node view by a border.
#F6 With the user of the simulate scenario button on the sidebar the user should be able to simulate traffic that is described by a sequence of requests.
#F7 The user can specify a title and description for the sequences.
#F8 The user can create multiple sequences and access them through a list.
#F9 The user can save the sequences as a scenario text file.

Non-functional requirements

id Description
#S1 The application needs to have thorough type definitions using typescript
#S2 The application needs to use react.
#S3 The functional requirements need to be covered by the relative tests.

Implementation details

id Description
#S1 The application will work with react and utilize state. Each region in the application will be a separate component but all of them will subscribe to the applications context.
#S2 The application will not use external libraries for drawing the nodes. There will be no third party libraries involved in the presentation of the application.
Goal Duration
Restructure and add code to the library so that the functions and interfaces that are needed for the application are generated. The format of representation of the graph should be decided at this stage. There should be functions that take the representation of the graph at runtime and save it as text file (the so called scenario file). 6 weeks
Create the components for the graph. This includes the sidebar, the nodes the lines between them. 8 weeks
Create the visual functionality of the graph. This includes the capability to click on the nodes and lines\connections to edit their details on the sidebar , manage the app state and generate traffic operations 8 weeks
Create better documentation for the project and the desktop application. Probably create a video tutorial 2 weeks
github-actions[bot] commented 1 year ago

Welcome to AsyncAPI. Thanks a lot for reporting your first issue. Please check out our contributors guide and the instructions about a basic recommended setup useful for opening a pull request.
Keep in mind there are also other channels you can use to interact with AsyncAPI community. For more details check out this issue.

Sukriti-m commented 1 year ago

Hey @NektariosFifes

I am writing to express my keen interest in the AsyncAPI Simulator Desktop Application project for the mentorship program 2023. As a junior undergraduate with a strong background in computer science and engineering, I am excited about the opportunity to contribute to this project.

I have a passion for web development and a drive to learn new technologies. The functional requirements of the project, such as adding AsyncAPI files, drawing connections between nodes, and simulating traffic, align perfectly with my experience and aspirations in enhancing user experiences through intuitive interfaces.

With my proficiency in TypeScript and React, I am confident in delivering a structured, maintainable codebase. I understand the project's timeline and I am committed to dedicating the necessary time and effort to meet the proposed goals.

I have previously contributed to open source programs, including being one of the top contributors in GSSoC'22. These experiences have equipped me with collaborative skills, project management abilities, and strong technical acumen.

I would greatly appreciate your guidance on how to get started with the project. Should I proceed by submitting a formal proposal, or is there a specific process that I need to follow?

I am eager to dive into the work and make a meaningful contribution. I look forward to collaborate with mentors and contribute to this project.

Best Regards, Sukriti Maurya

Srishti19-gaur commented 1 year ago

I would love to work on this issue and make a contribution

AceTheCreator commented 1 year ago

Hey Folks,

To clarify how to submit a proposal, you should contact the project Mentor/s on Slack and send them your submission in the form of a document or ask them how best they'd prefer you submit your proposals.

NektariosFifes commented 1 year ago

@Sukriti-m @Srishti19-gaur Hello sorry for not responding i have been busy lately. i will provide further details soon. email for contacting and submitting proposals : nektariosfifes12@gmail.com

Format of proposal Information Name, Country of origin, Education , Github Account Some details about your skills and past projects. Estimation of time that you can invest on the project every week. What would you expect from me as a mentor? Also mention if you think we should follow a different timeline for the project . If so describe your timeline.

If you have certain objections or questions about the milestones i have mentioned ask me here on this issue.

Be aware the project will not be easy and requires a substantial amount of time every week to be invested onto it. But we will be in contact every week and i will help.

If your proposal is not accepted don't be disappointed :) you can help with other elements of the project.

Palaktahlyani commented 1 year ago

Hello @NektariosFifes

I want to work on this issue as I have been actively monitoring the project and believe that I can contribute effectively to resolving this matter.

NektariosFifes commented 1 year ago

Hello can everyone that has submitted a proposal to my email make a thumbs up on this comment so that i dont miss anything on the inbox? :) My email filters may have blocked messages. I have received 3 proposals so far. @Sukriti-m @Srishti19-gaur

Palaktahlyani commented 1 year ago

Hello, @NektariosFifes!! Did you receive my email?? Mail - palaktahlyani@gmail.com

NektariosFifes commented 1 year ago

I have received all proposals from those interested. As much as i do not like it i will have to pick one by today/tomorrow. However we can arrange a meeting for the project everyone can attend and help in other aspects. Who would be interested? thumbs up . In case there is interest we can arrange a voice call and discuss .

I made a discord server for anyone interested in contributing. It will make easier our communication. https://discord.gg/6wa9aHKB @Palaktahlyani @codingmickey @shraiyan47

NektariosFifes commented 1 year ago

I checked everyone's projects and commits and thoroughly read all your proposals. All of them were great and i appreciate the amount of work that went into writing them. However i can only pick one for the program. This does not mean that those not selected have put in work for no reason. I have an idea of your areas of expertise and that can help in our further cooperation. We can arrange a meeting in Monday 10'th of July to talk about ideas or things we can learn and expand on.

https://github.com/orgs/asyncapi/discussions/689#discussioncomment-6028934

Note: If the picked mentee changes his mind and decides to attend another project i will pick another proposal :) @Palaktahlyani @codingmickey @shraiyan47

NektariosFifes commented 1 year ago

As mentioned above i made a discord server for whoever interested. It will be easier to communicate through there

https://discord.gg/6wa9aHKB

@Srishti19-gaur @Sukriti-m