 So there are a team IAT which stands for I am talented. Initially, they are kind of awkward to introduce themselves because they'll be asking, oh, what team are you? I am talented. Like, you're bragging like that. So then we realized that, come on over, then we realized that this team always go out to eat, like in the middle of a session they'll just disappear, all of them, because they went for a snack. So I decided to call them EAT instead, so their team eat. Take it away. A very good evening to everyone. I'm so happy to see that there's such a great turnout for tech ladies graduation party. I'm sure all of you are eager to find out what I am talented has developed with the boot camp, and we are very excited to share our learning journey with all of you. Okay, sorry. Thank you. Okay, so a quick introduction to myself and the team. My name is Xia Min and over here we have Yuhan and also Li Ling, and our coach is Lawrence who has been very helpful. And also another big thank you to Elisha for organizing this amazing boot camp and as well as all of the great mentors who were very very helpful and supportive. As much as I would like to name all of them, I wouldn't want to deprive the audience of the amazing things that I am talented has done. And yes, even though we're known as the EAT team, we have a lot of things to show you. Unfortunately, no. So a quick introduction to I Am Talented. I Am Talented is a social empowerment initiative that helps students who are not doing very well in their studies and helping them with finding their passions through non-academic pathways and how I Am Talented does this is by conducting workshops. And some of the workshops include journalism, programming, fashion design, robotics, and many others. And normally these workshops would be conducted over two consecutive Saturdays and would have a turnout of about 300 students. So on the first Saturday, the students will be going through three taster workshops and the first session of a deep dive workshop. And on the second Saturday, they'll be continuing with their deep dive workshop as well as showcasing their work. As it is very important that the students are genuinely interested in the workshops that they're doing, I Am Talented has given them the opportunity to choose the workshops that they would like to attend. So typically there will be about 15 workshops that the students can choose from and out of the 15 workshops, the students will have to choose five workshops that they're interested in and I Am Talented will assign them to three taster workshops and after the students try out the three taster workshops, they would again have to choose two workshops that they're interested and then they will continue with their deep dive workshop. Because there are so many students and some workshops will be more popular than others and bearing in mind that there's a maximum workshop size of about 20 students, the process of assigning the students to the different workshops can be a hassle and since I Am Talented, it's a ground-up initiative with a core group of six people. It is important to automate and streamline the assignment process as much as possible, which is basically what my team has accomplished through the development of their web application. And now Leilin will take over to expand on how we develop I Am Talented's web application with a focus on streamlining the assignment process. Okay, so we call our application the sorting hat, which is a magical thing that helps NGOs. I Am Talented to sort students into the appropriate classes that they should be located. So we have a few stages that we went through in these 10 weeks. So we started off with doing simple stuff such as doing the sign-up form, doing the locking form, we create tables, we create a landing page and after that we move on to work on the importing of spreadsheet and reading and exporting of spreadsheet. We spend quite a bit of time in sorting because that's the stage where actually we have a few attempts to come up with a sorting algorithm that will kind of make sure that the sorting process is optimized. So in our app, this is how a user will experience our app. So the user will come to our homepage and depending on whether it's a new user or the existing user, the person will either sign up or log in and the user will then be brought to a welcome page where he or she can choose to go to either phase one or phase two. So what happens at phase one or phase two are basically similar. The user can import a spreadsheet. The data will be pulled out as a phase one preview. The user can then generate the phase one result, which is the allocated result and then export the spreadsheet and from there the user can log out. So you can go from phase one to phase two or from the welcome page. You can go into phase two directly. So here we are going to do a live demo of our app. So here we are. This is the sign out page that we are talking about. So Yuhan is going to sign out as a return user. So she's logging in. As you log in, you are being brought to the home page of I am talented the sorting app. Sorting app function. Let's go to phase one. So here at phase one, you see the tables being set up and we can add new Excel spreadsheet to this phase. So we will choose an Excel spreadsheet in Portleg and then you see that all five choices will be captured. So this is what you see on the spreadsheet and we're just printing it out on the screen for you. Once you click phase one result or generate result, either button will do. You see that the choices are being reduced to three. So from five, we go down to three. So this is where our sorting algorithm is working to make sure that the results are reduced. Phase two can achieve the same effect as well. So when we go to phase two, the same thing can happen. We can add a new spreadsheet, printing out what is already available in the spreadsheet and generate results. So you see that from two, we reduce the result to one. So this is basically how our app looks like. And from there, you can import a spreadsheet into a CSV file and the organizer can take it out from there to maybe distribute the Excel spreadsheet to the schools or the students. This is how our CSV file looks like. So I've worked you through the app. So now Yuhang will work us through the bad end of this application. Okay, so we would like to share with you guys what is happening behind our project. So this is the registration form that the organization is using. So basically we have to import and read the spreadsheet. Okay, so for this part, we use the simple spreadsheet jam. And we had so much difficulty figuring out how to use this jam at first because there's just so limited resources online that we can actually understand. So in the end, our mentor Lawrence had to teach us how to use it. And here, we learned how to use an array to organize a collection of data and use puts for debugging. So we can check the output of our codes anywhere in between our codes. Next, we also created a function to export the generated results into a spreadsheet. So this is the sorting part, which is actually the brain of our project and also the reason why we actually need to do this application. Okay, so as explained by Jia Min and Li Ling earlier, the sorting is divided into two phases. In phase one, the participants choose five workshops and then the system will automatically allocate three taster workshops to each participant. And in phase two, the participants will choose two workshops out of the three taster workshops that they actually tried. And then the system will allocate the final selection to each participant automatically as well. And so what makes the sorting so tedious on the Excel spreadsheet is actually the limited number of slots for each workshop, the constraint. And so how do we allocate the workshops to each participant? The most obvious way to ask initially was to check each participant's choices row by row and allocate the workshop to the participants if it fulfilled two criteria. So the first one is if the workshop chosen has not exceeded its maximum capacity and if the workshop is not allocated previously, we will allocate it to the corresponding participant. So it actually worked, but we realized that it's not the most efficient way to actually do the sorting. And so we decided to optimize the sorting by allocating the workshop with the least number of participants first. So as seen in the example above, it shows the five workshops that the participant A actually chose and also the workshop sizes of each of the chosen workshops. And okay, so basically we allocate the workshops that have the least number of participants currently. So as you can see, website building have the least current workshop size. And so taster one would be allocated as website building. Website building would be allocated as taster one. And similarly, the next least current workshop size is actually robotics and so taster two is allocated as robotics. And thereafter, taster three, journalism. So I'll pass the time over to Lili to share what we actually learned during the project. So in these 10 weeks, actually the three of us learned a lot of things. And I think it has been quite a long period of discovery for us as well. As we learn in a group. And the thing about the three of us is that we have very, very different approaches to the same problem. And our approaches taken is very reflective of our background and experiences. So for instance, Jianmin has background in mathematics. So when she approaches questions, she thinks about numbers, formula, equation, which are totally not the things that I would think about. Yuhan uses a lot of Excel at work. So for her, the approach is usually from the perspective of an Excel spreadsheet like roles, columns and tabs. Myself, I did history in university. So to me, coding needs to be storytelling. I need to tell myself what to do first, what to do next and last. And I will need to tell myself the story as I code. So it's like, no, like talking to oneself as you. So it's a bit like talking to yourself when you are working, which is a bit strange. So learning as a group actually really opens up to allow us to discover what we learn the best, which way we learn the best. And it's actually true learning as a group. We actually see our own strengths and see each other's strengths as well. And another thing that we pick out in this tag ladies program is that we learn a lot from teaching each other, precisely because our approaches are so different. So we really need to go down to the specific details of our approaches and to make sure that our communication is very clear. And we understand the concepts very well. And of course, in this journey of 10 weeks, we have a lot of moments of self-doubt and questioning. Like for example, when we are looking at the spreadsheet, we have no idea how to do it because there's just so limited documentation online. And for instance, when we are doing sorting, we didn't even know what algorithm works, how it works in the first place. So we have a lot. There are a lot of instances we felt that we can't do it. But eventually, we spend a lot of time. We try it many, many times and then we get it. So our team would like to leave all of you guys here with a line that we truly believe in, which is everything is possible. The impossible just takes longer. Thank you. Hang on. Let me give you a mic. Girls, in your algorithm, what happens if several workshops have the same amount of participants already allocated? What happens then? Because you showed the example where it's like three, four, five, six, seven. What happens if there are three with five participants already? How do you choose which one? Is it alphabetical or...? It's not my meaning. Now they are using the three approaches to solving that question. It might take a while. So basically, it depends on the choice they actually... how the workshops are actually ranked on the Excel sheet. So basically, if the participants on top, it will actually get the top priority. And the workshops there on the closer rows will actually also get the first priority. Because we just sought by row and... Yeah, by color of their row. Yeah. The Excel approach. So first row. Okay, I think I saw... Okay, at the back. Okay, I'll get the lady in the yellow dress and I'll come back to you. Hi. Thank you for the presentation. It was very good. Can I just check with you regarding the sorting algorithm, right? Does it mean that you actually prize users who are... so first come, first serve? In the first place, how do you even sort the Excel file? Because it seems like... Okay, for example, if there's a limited number of workshops, right? Space for the popular workshops. It means that the users who are at the top will always get the best workshops for all three choices. Then the people at the bottom, if you sort it by alphabetical area, right? The people at the bottom will always get the worst choices because like... you allocate the best choices to the top three, to all their three choices already, right? Then after that, the bottom, they only get the loudest of all. Yeah, that's true. So I was wondering whether the better way to structure that would be like rank it. So one, two, three, like for example, you have a first choice, second choice, third choice. So everybody will get one choice of the workshop that they like. Then you allocate choice by choice. So actually, everybody will still be quite fair unless you are saying it's a life. So I thought maybe one other way is actually having a life form. So users when they key in, I mean, it doesn't discount them. For example, if I submitted the same time as her. But then the thing is her name is A. My name is Zach. So even though she has submitted her form, we have submitted it together, right? She gets the best workshop I get the worst. Yeah. Actually, this wouldn't happen. Yeah. Because our Excel sheet is not ranked by alphabetical order. It's actually first come first serve. And according to our NGO and also our back door. So if you are late, that's your problem. Okay. Okay. For some context. So this, this NGO is called I am talented. Part of the organizing committee for that NGO is also the coach. So he's also, he's the coach and our client. Do you want to just finish? So he, she was really listening to you while you are teaching her stuff, right? Okay. I think there's another, the, is there a lady in black? Was it you who want to ask a question somewhere around this area? Yeah. Behind you. Hi. Thank you. I actually want to ask why you discarded the first option instead of the, and use the second option instead. Okay. Because our second option is actually more efficient. Because throughout the sorting process, it actually allocates the workshop more evenly. So the workshops actually get filled out more evenly because he's always allocated to the class with the least participants at that point of time. Oh, okay. But for the first one is actually, because actually the students don't actually rank their workshops in the Excel sheet. So as the process goes, like as the sorting process goes through, so the front, the, what do you call it? The workshops that are ranked earlier on the earlier rows actually get the priority. Yeah. So you have a lot of classes at the back that's not filled up as fast. Okay. Okay. Yeah. Thank you. All right. Let's run applause for IAT.