 Hello everyone. So, I am Pratham from Fossey project team. So, there are various projects in Fossey that you can take up for internship. So, I will be presenting three of them. So, these are the list of projects. So, I will be presenting first three projects. So, the first project is build ipython widgets backend. So, there is a trades UI package in Python using that you can build user interface very easily means in few lines of code you can build a beautiful UI. So, for example like this within 8 to 10 lines of code and you can build an UI. So, similar thing we want to build in ipython. So, ipython there are ipython widgets using widgets you can build user interface in ipython notebook. So, basic aim is to build an initial version of ipython widgets backend. So, this will allow users to easily display UI on remote ipython notebook. So, for this you should know python, ipython, ipython widgets and javascript. Qt is optional. So, Qt wx python is the backend used by the trades UI package. So, the next project is automation of certificate generator. So, cosy team organizes various events, conferences, workshops. So, we need to provide certificates to the participants, speakers and coordinators. So, this process should be very simple and automated. So, for that as an organizer you will simply feed in the event details the participant details and then using an interface I can simply create a certificate template which will be a simple drag and drop. So, and then on one click I can send the certificates to the participants via mail. That easy the process should be and the system that is your application should keep the authenticity of the certificate. So, that it should generate QR code for each certificate the QR code will be unique. So, and using QR code you can verify the certificate and obviously validation of email IDs and as an participant you can verify the certificates give feedback about the events and certificates. So, technologies required will be python Django latex for creating certificate or any other package Django package that is report lab or any other package you can use. Then you should have knowledge of HTML, JS, CSS and some knowledge of Git. The third project is revive python flu package. So, python flu is a python module which you can use to interact with open form. Open form is a computational fluid dynamics software. So, using python flu you can interact with interface with open form. So, the problem is that python flu supports the older versions of open form. So, we need to revive this package and support the latest version of open form. So, for this you should have very good knowledge of C plus plus, python and some knowledge of svig. So, and the important gain for this project is that you will interact with professor Prabhu Ramachandran. So, because he is the mentor of this project. So, all the best. Thank you. So, hello everyone. I am Priyanka. I am a software engineer at Fossey project here. So, our basic aim is to create websites for the project. Basically, this internship we are asking you guys to help us out with website development for Sylab project. So, we have a website called sylab.int. So, it is already developed. We are here to enhance the features of the website. So, there is a activity in Fossey which is book companion project. So, in this suppose you have a book that gets converted into Sylab code and that gets uploaded. So, this entire interface is created in that website. So, our basic aim here is to ease the process and enhance its feature for user and review of interface. So, the things that you will achieve in this particular internship over this project is that the TBC user interface you will need to enhance the already existing book proposal interface. So, for example, how users can upload, how they download, then how the books can be saved and other such enhancements. Second is the code upload. So, currently what happens is the book gets saved on the server and the entry gets to the database. So, we would like that there is a standard way how the codes get uploaded and also it automatically gets pushed to the Git repo. So, the knowledge of Git would be required for this. Third is that you know right there can be scripts which you run and it automatically tells that these are the errors found or some sort of code. So, we would like to write a script which will scan all the codes and tell us if there are any dependencies issues or any other problems which are there in the code at the time of submission. Second phase is the TBC review interface. So, the reviewer interface is very complicated. So, you know right you write a book then there are reviewers who tells ok this is wrong this is wrong. So, that becomes your first review. Then it comes back to the user. Then the user corrects all the comments given by the reviewer. Then it again goes for the second review. Now, this process is quite complicated in the current system. So, our focus here is how can we simplify the process which is already there and if we can generate reports for each review. So, the external reviewer or the admins can see ok what is the progress of a particular review. Now, the earlier ones which I showed you are the already existing interfaces which needs to be enhanced. The third one is you need to create a user dashboard. Now, currently what is happening? I am a user I create many books right TBC books. After I get good amount of knowledge in it I say that I will also review books which other people have now created. So, you become a reviewer now you become a user as well as a reviewer. So, your roles you are now at two roles right. So, these all activities then your payment you get paid for the TBC project. So, all these activities should be mentioned in the user dashboard. This is a new interface which we will like to add. The last thing would like is to create the entire theme in silab.in. Now, the 4C project use Drupal CMS. How many of you are aware of CMS WordPress or Jumla Drupal. So, all these are CMS. So, all the websites are being developed in Drupal ok. So, we would like you to create a theme in Drupal and the advantage of this will be. So, we are having 14 other websites other than silab.in. So, the advantage of this theme will be that the theme developed by you will be used throughout all the other FOSI websites. So, the technologies as you can see is Drupal CMS knowledge of PHP minus QL latex because there are report generations and PDF generations. HTML, JS, CSS, basic web technology knowledge is required and get. Ok, any questions on this? Ok. So, now second is enhancing FOSI forums portal. Now, because we do promote open source software and hardware. So, people do have questions right on installation then how we can do. So, there is a forum which we have created. So, this has been developed in Django Python. So, again the main role of this is to enhance the existing interface, make it user friendly and also how it can be more applicable towards user interface. So, basically it is a question answer portal for installation and free open source software questions. So, the existing system is just like the user comes he has he posed the questions then the experts answer. So, this is the basic flow. Now, what we want to enhance in this is that the rating system. How you know how Stack Overflow is? StackOverflow.com right? So, similar but not that to that great extent do. But we are planning to reach towards that standard. So, rating system then tags. Suppose I write or type a question it should be able to fetch like these questions were already asked. So, then duplicacy gets reduced. So, such type of enhancements are required in this project. Secondly is to create the admin interface. Currently everything is done by database and also a proper admin interface whether user if there is some spam question or answer which needs to be deleted or edited or something like that you should be able to do. So, the technologies required here are Python Django, HTML, JS, CSS and Git. So, the third one which I am going to explain is about the interactive grading system. So, I am presenting this on behalf of Professor Sundar. So, he would be the mentor for you. So, the basic idea is that current grading system is manual right? So, I think the several autonomous institutions use letter grades for course grading. So, the basic idea is you give some combination of formulas. So, this is what he is explaining is that. So, suppose I say 75 percent K above will get A grade then B grade C grade D grade. So, this will anyways be done by using a formula. Now, it should be an interactive tool where the teacher can actually change the parameters dynamically and it can automatically get updated according to those changes. So, this is the rough idea for any more details you can directly contact Professor Sundar for the same. Thank you. So, afternoon all of you. My name is Rupak and I would speak about two projects for this internship. So, this first project is about improving SbH's remote triggered virtual lab server and website. So, the title is very huge and there are some jargons used. So, I will first clarify those jargons. First of all SbH is basically a device. It is a embedded system. It is a device experimental setup and SbH stands for single bold meter system. That is the name given to the setup. And remote triggered virtual lab is something that we will see in the slides. So, it is about virtual laboratory. How many of you know about the concept of virtual laboratory? So, it is about extending laboratory experience to students online. It is an independent project virtual labs. So, a virtual laboratory like it is an online facility and now there are two categories in virtual laboratory. One is a simulation lab where you do simulations. The other one is remote triggered lab. Simulation labs are the one in which everything happens on a browser. Like you can do some animations on it like using flash or HTML5 or you know JavaScript whatever. And the other kind of lab is the remote triggered lab wherein the device is actually sitting on the remote location when the student is accessing their device over the internet from his home hostel wherever he is. So, we are talking about that kind of virtual laboratory, remote triggered virtual laboratory. And we have a setup for this device, single-portrait system. So, in this RT lab we are going to be accessing this device remotely over the internet. And there is the URL where you can just go and take a feel for it. So, now coming to the work. So, this entire system has been tested for like around three years now, more than three years. And over this period we have found a couple of not exactly bugs but some problems you know inherently inside the server. We would want you to fix those problems and we also want to add some new features to it. So, the main problem that we have here that I'm talking about is basically about a no connection issue. Now, you have to figure out like why this happens. It doesn't happen with all systems. So, I have an array of this sbch's unit. So, I have 32 hardware devices you know connected online to the computer to the server and people access them remotely. So, 32 devices. So, this problem doesn't happen with all devices. A few couple of devices that happen randomly. So, that is actually the problem statement here. The first problem statement. Second is now there is an admin to it, right? And we need some admin features to be fixed. The first issue is like MID is basically machine ID. So, every board has its own machine ID. So, there is some problem with the machine ID display and it takes up the wrong machine ID for some reason. So, that has to be fixed. The second is like I have 32 systems, right? And the public that is going to be accessing it is like millions like right? It's on the internet. So, anybody can access it. So, we have something called as a traffic control mechanism called as a slot booking mechanism. It's similar to booking a movie ticket, right? What do you do when you go to a movie? First, buy a ticket. So, you reserve your place, your seat for like three hours and then nobody takes the seat, right? The same thing happens here. You book a slot for an hour and then nobody accesses the devices but only you, okay? So, this booking page actually doesn't sort the bookings properly by date time properly. So, that is the issue. Third, we also have a web camera facility. So, every device has a display on it. And we have a web camera attached to it and it gives you a live field on the server, on the web page. I'm talking about the admin interface, okay? So, here it doesn't auto refresh the images, okay? So, admin interface basically have, will show all the 32 or 40 devices connected, okay? It will show all the web cameras, feed live feeds for all the devices, okay? And then we need some test cases for the server, right? So, suppose I want to add a new feature or found a redeploy it. I need some test cases for it to see in the development stage whether the modified version is working or not. Or the new feature is working properly before I deploy it, okay? Now, the other features that I talked about earlier were about fixing it. These are the new features that I want to add. So, first is disabling the board. Like, suppose some board is faulty. So, I want to disable, you know, I want to make it offline. So, then nobody comes and, you know, sees it, comes and, you know, tries to experiment and then he finds out that the board is not working. So, I have to avoid that, okay? Then a couple of some other things also like notify reboot because it's a hardware service if system reboots, you know, in the middle. So, when it reboots, it has to scan the devices again and make sure that these are all USB devices. So, they are all properly listed and, you know, each USB devices is mapped to its user properly. Okay? So, we need some intimation when the server reboots. Then timely, you know, hardware health reporting like is every hardware reporting properly or not timely reporting. Okay? Then also monitoring of the ongoing experiment. So, I mean, suppose a student is doing an experiment on board number one, okay? And I'm a faculty, for example. I'm not a faculty but suppose I'm a faculty and I want to see how a student is doing it. Okay? So, without I intervening in his experiment, I just want to be a monitor. Just want to see how the student is performing. So, that, you know, monitor interfaces has to be built. So, the device, the right to the device is to the student. He would access this device but the faculty would just, you know, monitor it. That is one. Then a small feature changing the MID. Now, the second phase of this project is we need, we have to, we want to master slave architecture. Okay? So, here what happens is the current software architecture for this RT lab is, you know, one server, one device, you know, one fleet of device and one server. That's it. If this server crashes, the entire lab is down. Okay? And then there is a limit. So, I said USB devices, right? So, there is a limit to how many USB devices you would connect to, you know, one single company. There's a limit to it, right? So, one way to break that limit is to have multiple, you know, servers. It's like one master and they have several slaves. So, I can, you know, plug out and plug in any number of slaves I want. Let it like, you know, it will multiply its capacity like anything. So, that master slave architecture has to be deployed. Okay? So, this is the current server architecture. You should see this server computer. So, I have, so what technologies I have used here is MySQL database server and Python Django for the main website, server and Apache obviously for the web server. And I have like several devices connected to it. This is the client computer and everything happens over the internet. So, this architecture has to be redesigned for a master slave, you know, topology. Okay? Now, there are some distinctions to it. These we can actually skip. Okay? The next project is about optimization of Sylab instances on server. So, you know, I'll know about Sylab. Anytime I work with Sylab as a part of a curriculum or something, right? One person I can see. Okay? So, Sylab is basically a numerical computation tool and so, we use it extensively within all of most of our projects. Okay? And we are talking about optimizing its instances. Okay? So, I'll come to it. Okay? So, why Sylab? It's a cross-platform. It's a free cross-platform software. It's compatible to MATLAB. MATLAB is, you know about MATLAB, right? You all know about MATLAB. So, it's an open source equivalent to MATLAB. Sylab. Okay? So, the problems with the, so now as she talked about, you know, TBC. So, TBC, she talked about TBC earlier. So, that TBC would typically use Sylab, you know, on the cloud, right? Yeah. So, they would basically, you know, run some Sylab code that the textbook has, you know, over the cloud. Okay? So, the Sylab doesn't reside on the client's company. It's on the cloud. And the server like pings to the cloud, does the computation, returns the answer and gives it back to the student, the user. Okay? So, now this process requires one Sylab instance to be there, right? So, now the problem here is an instance of Sylab is very heavy, both memory as well as processor. Okay? So, it loads all default libraries. It doesn't just loads. So, how Python works, you know, how Python works? It'll load only the libraries that you import, right? It doesn't blow up your entire system. It doesn't happen, right? But this, like, it blows up completely. It's a big instance created and takes up a lot of memory and processor. Okay? So, we need some work around on it. So, optimizing the instances. So, what does it mean? I'll show you. So, it's like there are multiple calls of Sylab code happening. Okay? So, these are like users' codes and they're coming to the server. And as the number of server requests is, user requests come, the number of Sylab which is increased and they tend to become resource hungry. Okay? So, this is the proposed Sylab server. We are open to any solution, frankly speaking. If you have a better solution than what we are proposing, you are most welcome for it. This is what we are talking about, that we have, we are proposing for it to do. So, the idea is basically, we have to deliver two things. One is a toolbox in Sylab that talks about the network and one API which, you know, it's kind of a middleman. So, it controls all the traffic that goes to the Sylab server, right? So, there are 100 requests and I can source only 50 Sylab instances. So, I will make the other 15 queue. I'll queue them up. I'll process the request properly and I'll make sure that the instances are killed, you know, whenever the job is done or cleared, whatever is optimized. And then, you know, queue up other things and then they are all lined up. So, you then, you know, continue this process as the instances become clear. Okay? So, it's a pictorial representation if you can, you know, get something out of it. These are the skills required like Python, Java, CCs, plus plus. Okay? Good afternoon. My name is Dutty and I will be mentoring the project Xcos on Cloud. So, before going to the project description and brief, I will just give a brief introduction about Sylab and the Xcos. So, as Rupak already told you that Sylab is a free open source software which is more equivalent to the Metlab which you use in your colleges. It is a powerful competitive environment for scientific calculation and all that. So, Xcos is a graphical package which is inside the Sylab and it is used for creating diagrams, mostly the dynamic hydravit modules system. And we have like in this Xcos we can design, save, then simulate and get the output of the modules. All Xcos blocks are grouped under categories that is mathematical or either signal processing and so on. So, they have many categories in that. So, why Xcos on Cloud? Why we came from a desktop application which is a Xcos to a cloud? Because we wanted to put all the core functionality of the Xcos desktop into a browser based software you can say. So, advantage will be one is that the clients will not be installing any software. It is not required for installing on any software. Then the another advantage will be like a user has 24-7 access to that computing software. Then interested students or user can easily access this without any installation and also on the machine which has an internet connection also. So, this is the Xcos on Cloud UI and this is partially implemented by us and as you can see on the left side they are the blocks which I mentioned which are categorized into different categories. So, in this we are just dragging the blocks to the canvas on the right side and you can connect them through and then simulate. So, once you click on simulate, this whole diagram is converted into Xcos file that is sent to the server, server executes and sends back the result to the browser and that result is shown to the user. So, for user they do not have to install anything they are just accessing the server and getting the result. So, technologies which we have used in this is MX Graph. It is an open source JavaScript library and it is basically used for creating the UI which you just saw like last slide and it generates the encoded XML which is for use for Xcos file. Then we have a JavaScript, we have created like few of Sylab functions into JavaScript. So, when we are executing any Xcos file, so the value should be same which should be sent to the Sylab server on the server. So, for that change of values from one format to other format, we have used JavaScript functions. So, then we have XML because we have to come up with an Xcos file whose XML content is similar which goes to the desktop version. Then we have Python server and Python technology used because we have a parser which actually works on SCI level that is it converts the blocks SCI file which are in desktop application to a JavaScript file which is similar. Then even we have another that is the computing technologies which we are using for reading such files and even getting the result from the server is based on Python. Then we have used high chart that is for dynamic display of the graph and Sylab is there to run the simulation at the server side and few more changes will be done on the Sylab side. So, we want you people to implement like some enhanced feature in the existing system. One is dynamic graph for the scopes. Scopes are one of the categories of Xcos blocks and they have graphs in that. So, we will like to have a mechanism where the data from the Xcos is written into a file and that is read by the high chart and a graph is generated for the user. Then even there are few parameters for each block that is get and set. We would like to complete such parameters get and set for almost 200 blocks are there for Xcos. So, next is implementing display block functionality. Actually it is just block, there is a block name display who gets the result from the server and it display within that same block. So, it is a text change you can say within the block itself. Then another is working on the different format of the result. Sometime Xcos simulation sends text as a result, sometime a image is written as a result. So, we want all other different format to be supported. Then there is another task that is two way interaction between the server and the client. In this there is a block name tkscale. If I change the value of the tkscale, the graph inputs changes. It is a input block. So, we want the two way communication to be implemented in this. Another is like modification of block code that is on Sylab desktop part. The Sylab which is running on the server needs some changes to be done. So, that the result will be written in a text file and that can be easily read by the website or the client side. The skill which we require is Python, generally for the server computation and even for reading of high charts value and all. Then JavaScript first for the blocks and second for creating the Sylab codes which will be used for changing the values from one format to other. Then XML for creating the xcos files which is compatible with the desktop version. Then is cc++ because we want to change and modify some of the files of the Sylab desktop version. And last is Git which is not mentioned over here, but we will want a person to like know a little bit of Git also. So, that's it from myself. Good afternoon. I'd be mentoring this project developing a GUI for OpenModelica. Now, what is OpenModelica? So, OpenModelica is an open source simulation environment. It is just like MATLAB, but it is very easy to code. I mean, you don't have to call any functions. You can straight away dump down your equations and it solves them simultaneously. So, it follows an equation oriented approach. So, as we learn from this, OpenModelica has very good study state as well as dynamic solvers. So, as such it is very good for solving chemical engineering app simulations. The only problem with OpenModelica is it doesn't have a good GUI that is capable of solving or executing chemical engineering simulations. So, therefore, we need a good GUI. Now, this is the whole picture of the project. So, here is OpenModelica sitting over there. We have to develop this Python GUI that can connect with OpenModelica, dump all those equations to OpenModelica, let OpenModelica solve those equations, and then the results will be thrown to the GUI. So, it is basically a layer over OpenModelica. And then we'll have a good simulator that is capable of doing everything. So, to carry out this, this is our usual approach. So, already we have written unit operations and libraries for chemical engineering in OpenModelica. They have already been written. Now, we need a Python GUI. So, why Python now? Because OpenModelica forum already has an interface named as OMpython, which connects OpenModelica and Python. So, it is good that we code it in Python. So, what this GUI will do basically is, it will generate a .mo file. .mo file is an extension for OpenModelica files. So, as soon as the user drag unit operations or it connects all those files, MO file will be generated. Suppose a user drags a unit operation. So, at the back end, a file will be created, which says import this module. So, basically it is replicating the work what a user does on the GUI. So, at the end, it will generate a .mo file. It will send this .mo file to OpenModelica for simulation and collect the results and throw back the results to the GUI. So, the objective is a complete desktop GUI with all the functionalities required for chemical process simulators, linking the GUI with OpenModelica using OMpython that I already discussed. Another thing is adding plotting functionalities. Now, OpenModelica lacks plotting functionalities. You can only plot variables with respect to time. Basically, OpenModelica was developed just for dynamic simulations. Now, they have gone for a steady state as well. So, basically, the only plotting functionality available in Modelica presently is with respect to time. So, we have to add plotting functionalities. So, we will use some Python module for that. Okay. Now, this whole GUI that is developed in Python. So, we are using a module named Kiwi. Has anyone used Kiwi till now? That is the most recent GUI module that Python has launched. It is still in development for about five to six years. And we have chosen Python because it is a very advanced GUI. I mean, so, you just need to code only once. And that code is available to all platforms. You develop a GUI for a normal code for a GUI. That is available in iOS, in Android, and all such platforms. All the extra platforms and all mobile platforms as well. So, that is why we chose Kiwi to develop this. And it has great advanced functionalities that you will learn later probably. So, the learning outcomes from this project would be hands-on experience on advanced GUI development in Python. An idea on interfacing Python with other programs. So, in this project, we are integrating Python with OpenModelica. But you will get a general overview of how to integrate Python or how to use Python to communicate with other softwares. And as a... So, there is always a bi-product in everything. So, this is a bi-learning in this project. So, as such, you will be working on Kiwi. So, you will be very familiar with mobile app. I mean, you can develop all those mobile apps in Python by using Python for Android. That is a library that Android has developed. So, you can code it in Python and develop apps as well. So, I am handing over to Manas now. Thanks. Hello. This is Manas. And I will be mentoring this project. So, I don't think anybody needs an introduction on IoT because this is a multi-billion-dollar industry. And everybody is into IoT. You can name any company, IBM, Microsoft, any big companies into this domain. So, but before you can say that generic. Generic in the sense, the platform you will be developing should support heterogeneous devices and heterogeneous protocols. By heterogeneous devices, that means it should support the number of microcontroller families or might be some other new controllers that will be coming. And then comes heterogeneous protocols. The IoT has some standard protocols. I can say MQTT and COEP, XMAP and all those things. So, the platform should support all these protocols. So, this will be the algo for your implementation. So, let me go through it. So, you can see first this device. In the device, there will be all your sensors. Sensors in the sense it can be, let's say in generic sense, temperature, humidity or it can be anything. So, from the sensors, you have to take the data to the next level. That there comes the gateway. And the communication should be bidirectional. You can take the data from the sensors to the gateways and also you can command something. Like, let's say I have to switch on, switch up the SC or whatever it is there. So, the commands should be, can be from the other side also. So, the communication should be bidirectional. And then once your data comes from nodes to gateways, then it should be real-time streaming to the user application. So, up to the gateway part, all your heart, everything will be on hardware. Like, it can be on the Arduino board or ESP8266 or then the aggregation gateway part there comes Raspberry Pi. The gateway in common sense, you can say it's a kind of a server. Then once your data comes to the user, it should be real-time. Then the data should get stored in a structured manner. Why you need the data in a structural manner? The data you are getting from the sensor, it contains a lot many noise. Means sometimes it has some useful information and sometimes it had some garbage values. So, you have to filter out those garbage values so that the user get what he wants. So, the data should be in a structured manner. Then your logic and analysis will be on the event processing part. Then what does it mean by logic and analysis? Let's say you have a temperature data inside a room. And let's say I have a set point. Like, it's a 25 degree. If the temperature data crosses 25 degree, my SC should be automatically switched on. So, those logic and analysis part comes on the event processing part. Then the last part is user experience. User experience, it is like a front end of an application. Like, you are giving a user a nice GUI having, yes, you can click this button. You can see all those data and have some nice plots and all those things. So, this will be your basic algo. Means there might be some changes on the upper level. It depends on whatever you are going to implement. So, let's describe it in a more, yeah, you can see. On the device part, you will be having n number of sensors. It should be whatever you will be giving to the user, the number of sensors or nodes he can be, he can add n number of sensors. It can be any number. And on one node, sensors might be in one, two, or it can be anything. Then comes your gateway part. The gateway part might be on RPI, Bigelbon or anything. So, up to that part, the hardware part is finished. Then comes your cloud. On the cloud part, you have your ingestion that means your real-time streaming of data, stories in a structured manner, and analysis of your data. Yeah. So, that is the overview of the implementation. And mostly, I'll be looking for this proficiency. Arduino Embedded C, JavaScript, Database, and a bit of web development. That's it. Thank you.