Sathvik D M - Github Externship Proposal #1648
saathvikdm
started this conversation in
Externship
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Application number: 23-04_Saa540_tfa_258
Full name: Saathvik D M
E-mail: saathvikdm@outlook.com
GitHub username: saathvikdm
About Me: I am a pre-final year student of Computer Science and Engineering at Vidyavardhaka College of Engineering. I'm a passionate computer science engineer looking for opportunities to work in the industry to gain hands on experience of developing for a production environment. I've done quite a few consultancy work for technical chapters of our college primarily in React. I've also been actively working on hobby projects and involved in the development community though I've not made much opensource contribution, yet. I'm also very interested in the operations and deployment of infrastructure side and therefore I'm hosting a server at my home and also as a VPS on Azure which are hosting services like a Media Server (use: demo and demopass) and other essential services that I use regularly. Because of my Microsoft Learn Student Ambassador partnership, I have extensive access to Azure and its services through which I am able to gain unrestricted access to learning of the Cloud Service and hence some experience in working with the Cloud and Linux Systems.
Some of my highlighted projects include:
Student Management System: Built a full stack application from scratch with NodeJs as the backed server with Express framework. I've built an authentication and authorization system with JSON Web Tokens and Passport JS. I've also made use of Bcrypt Hashing Library to hash and securely store the passwords in the MySQL Database. I've built the frontend client with ReactJS and made the HTTP requests with Axios. Used useContext Hook instead of Redux as the former made more sense for the simplicity of the project.
AICDMB 2020 International Conference: One of the consultancy work for ACM Chapter.
Update [19-05-2021]: I realized I hadn't actually discussed about the implementation, so I've made changes and added more information on how I propose to implement this feature.
Have experience in:
Proposal Type:
Proposal Title: MockServer
Description:
This proposal to address the feature request of implementing a Mock Server for the Hoppscotch to be able to create mock API endpoints from within the service to have a complete API testing suite. Some libraries and frameworks that will help achieve the goal include:
Implementation: First we'll create a workflow for the frontend client to be able to obtain the mock api files containing the api endpoints and the mock responses. Then create a backend server with Node JS and using any of the mentioned libraries, the API file is to be parsed and the appropriate endpoints are to be dynamically generated upon the request of the client. A unique URL is to be generated so that the client can make HTTP requests to the mock server.
Update: Since I learnt that there could be a possibility of multiple people working on this feature, we could start thinking of the scalability of the service from the get go. We could make this as a microservice which we can deploy in a docker container and scaling it with Kubernetes or Docker-Swarm depending on the requirements. I will be able to play a role in the development of the backend with Node and also can work with the operations side of deployment with technologies such as Azure AKS or as self hosted service using VPSs/VMs.
The workflow I propose: When a user wants to create a Mock Server to test their APIs, they will have to either upload their Mock Data as JSON format or through our developed frontend, i.e through an Editor or as a choice based or a flow based Mock Data generator, like if they have their request model "post", they can define it like { [ id: uuid, name: (lorem * 1), post: (lorem * 50) ] * 50 } which will generate 50 entries of data which will store on our hosted server as JSON format which will be server back to the user as a mock server which will be implemented with node using any of the suitable libraries, like JSON Server. Now, this JSON data which we will receive from the user can be stored in a DB like Mongo or MySQL/PostgreSQL etc, or as a plain JSON file on our hosted server's or service's (Docker) file system which can be set as a temporary file which can be easily deleted with a cron job on a schedule. The node js service will pick this file and generate an instance of API endpoint(s) served through the decided library. The user can then make HTTP requests to these endpoints to perform their tests from the Hoppscotch Frontend.
// lorem * n will generate n count of lorem ipsum words.
Roadmap:
Beta Was this translation helpful? Give feedback.
All reactions