Long time no see… Again! I just survived my exams a day ago and I could not help but jump straight to writing this blog! Since this blog does not have something I have done already, this is a Heartbeat frame similar to a WebSocket connection 😁
So I was a teaching assistant in the Object Oriented Programming course at my university this semester. And the good news is that I am going to be the teaching assistant for the Operating Systems course next semester too! And for that me and my other 2 friends (who are also teaching assistants next semester with me) have decided to create a new platform for students to code in. Now I know what you might be thinking,
“Oh hey meet, there are tons of such platforms that have a lot of different capabilities, I don’t see a good motive here!”
Yeah that thought crossed my mind… and that is something we are still working on 🫠. So basically this is a project we are doing for learning something new. The three of us have different interests, I have an interest in systems, one of my friend has an interest in UI and ML and the third one has an interest in backend and also systems (similar but not the same). So we have decided to make the building process modular too.
So here’s the (simple?) plan, We will build a platform with various roles like professor, student, teaching assistant, admin and maybe developer. Now each role can do different things.
The Professor can create and monitor contests given by students and decide the way to derive the results. The professor can also change a students marks (yeah we have to keep this after a looong discussion 😂)
The student can see their contests and also give them at the time set by the professor. There is a feature where the students can create contests for themselves too (not graded definitely 😂). And multiple students can join in and practice. The questions will be from a common question bank, it could be from the already taken contests or something new that the professor or teaching assistant provides.
The admin… is well the ADMIN! Like they can literally change roles, manipulate contests and blah blah blah, you know what an admin does! Nothing unique here 😇
And finally a developer can act as any of the roles and test the platform. This user won’t be visible to anyone except other developers. Yeah we have to “safely” test the platform without having to create 50 students and 10 professors who do not exist 😂
Now comes the best part, I will be creating a local cluster of computers for this! Yeah, we are planning to run the student's code in a "custom" container (or docker if the "custom" container does not work) which will be created using linux namespaces (seems very exciting to me! 😁). And there will be a cluster of computers (most probably our university's computer lab PCs 😁) which will be connected to 3 laptops. Now this will be a "decentralized" system, atleast I aim to make it so. The three laptops will be masters and the lab PCs will be slaves, making it a master-slave (leader-follower to be more technical 😂) architecture. So there will be two kinds of slaves, one that receives a request from a client (not more than 2 most probably 😅) and the other which runs code in these containers.
So I know what you’re thinking… Most probably 😅
“Why introduce so much complexity when you have options like Kuberneters and Docker which are battle tested?”
The simple and the only answer is, just for FUN 😂! Yeah I have literally no other reason! Why should I use Kubernetes and Docker when I build my own mini-cloud against it 😁? After all knowing what Docker does is equally important compared with using it in real production systems. But any custom solution cannot beat an open source “bulletproof” system like Docker and Kubernetes. Atleast not mine which is made in 1–2 months 😉
And along with this project I am planning to get a deep look into the linux kernel in this vacation and maybe even contribute a bit there! Exciting but still imaginary 😂
And sometimes when I will get bored which I know I will, I will refresh my Compiler Design course I had taken this time (which I could not pay enough attention to 😅) from NPTEL. Cause after I am done with the Compiler Design course I want to explore LLVM as well. Knowing that I am facing a hydra, I might as well bring a stone sword to emotionally support me 😂.
Along with this, a small group from my university of around 5–6 students have planned to work on our system design concepts, we have github repository from where we'll be doing system design and every 2 days we'll meet online and explain the concepts from our standpoints. Group work is much better than me doing it alone 😁 cause I want to actually do this now, after a year of planning though 😶🌫️.
And on weekends, I am finally, after 2 loong years of planning (procastination 😂), going to work towards my personal portfolio website! Yeah I have planned this but I hope I don't come in the way 😅
So…,
This vacation has a lot of work but I think I will keep blogging now and try to stay super consistent (that's my 5th time saying it right?).
And yeah believe me when I say it, this is not it, I have a freelance work ongoing and also some more freelance work upcoming. So my schedule is going to be tight but full of fun (maybe?).
I have built a fortress in my head, let's see what I can actually build 😁
Signing off…
If you have read until here and have more time, I would really appreciate you giving a view at the other two platforms where I write as well 😅
Hashnode: https://keep-alives.hashnode.dev/the-heartbeat-frame
Medium: https://medium.com/@meetgandhi13062005/the-heartbeat-frame-0fe1e7bfb6a8




Top comments (0)