Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save kellatirupathi/229a7ab591c4346e856ed8633f6d5d82 to your computer and use it in GitHub Desktop.

Select an option

Save kellatirupathi/229a7ab591c4346e856ed8633f6d5d82 to your computer and use it in GitHub Desktop.
Transcript for transcript_1oWOoOZbk55IERh3c_kn1tmmE169wgq40_0_1988.txt
[00:00:34] Hello there.
[00:00:40] Hello?
[00:02:06] Hi.
[00:02:12] Yeah. Hello, sir. Good morning.
[00:02:15] Good morning. How are you?
[00:02:17] Yeah, I'm fine, sir. How are you?
[00:02:19] I'm doing good.
[00:02:21] Sir.
[00:02:24] Just give me one minute. I'll just check if some of my other colleagues are going to join.
[00:03:12] Okay, anyways, can you just quickly start with an introduction about yourself?
[00:03:18] Yeah, sure, sir.
[00:03:19] My name is Nagapujit Kumar.
[00:03:21] I am from Nellore district, Andhra Pradesh.
[00:03:24] And I have recently graduated from Sri Venkateshwara College of Engineering with an aggregate percentage of 80.64%.
[00:03:31] I had done my intermediate from Sri Chaitanya Junior College with 97.3% and had done my
[00:03:36] SSC from GVKH with 84.64%.
[00:03:41] And I am proficient in full stack web development including with the mon stack such as MongoDB,
[00:03:47] Express, Chase, React, JSON, Node.js.
[00:03:49] Along with that, I am included with several programming languages such as Python, Java,
[00:03:53] C and C++.
[00:03:54] So, apart from these things, I have included my skills in terms of improving that by doing
[00:04:02] real-time projects in educational curriculum and also for my learning purpose.
[00:04:08] So I have done six kinds of projects and they are a trip planner which solely focuses on
[00:04:13] planning the itineraries.
[00:04:16] driven by the artificial intelligence.
[00:04:19] And second project is Tasty Corner,
[00:04:21] which is a similar clone to the Swiggy web application.
[00:04:25] And the third one is an emoji game,
[00:04:26] which is fully front-end application,
[00:04:28] but included with a gaming logic.
[00:04:31] And the fourth one is task manager application,
[00:04:33] which contains basic crude operations
[00:04:36] involving the three kind of administrative panels,
[00:04:39] like user, manager, and admin.
[00:04:41] And coming to my educational curriculum, I have done a machine learning project, which is included with the front end thing, which solely focuses on approving the loans by using the decision trees as a machine learning algorithm.
[00:04:55] And the last project is a full stack web application, which is done on the theme of environmental conservation during my time.
[00:05:06] in terms of gaining my work experience by working as a junior web developer intern in
[00:05:10] Myga Incorporation for a period of three months.
[00:05:13] And my task is to prepare the user interface of a rendering engine as a team of three members
[00:05:19] and I'm the team coordinator for my team.
[00:05:22] And apart from that, I have also worked as a Python analyst in YBA Foundation to gain the insights of the machine learning and upcoming trends and technologies.
[00:05:31] Apart from that, I have also obtained a free certification from the OSS Infobyte by working on...
[00:05:42] where I have won two of them.
[00:05:43] One of the hackathons is I have participated
[00:05:46] at a Teralogic company around my district
[00:05:49] and secured the first prize
[00:05:50] with a rewarding amount of 20,000 rupees.
[00:05:53] And I ended up being a runner up at NBKR College
[00:05:58] in a web hackathon with a rewarding amount of 10,000 rupees.
[00:06:02] And apart from this,
[00:06:03] we have conducted several quiz competitions
[00:06:05] and also have a good leadership skills
[00:06:08] around my college festival activities.
[00:06:10] Apart from this, my hobbies are I get updated myself with current trending technologies.
[00:06:16] And apart from this, for the non-academic purpose, I love to play cricket, which helps me to regain my focus in each and every phase and both professionally and personally.
[00:06:26] Thank you.
[00:06:29] Okay, okay.
[00:06:32] So you mentioned something about a rendering engine.
[00:06:36] Can you tell me a little bit more about that as part of the project?
[00:06:41] Yes, sir.
[00:06:43] So the rendering engines which we are actually seeing currently publicly are render,
[00:06:49] wassail, netlify, such as etc.
[00:06:51] So the company, that is a company, MICA Incorporation, wants to develop a rendering engines for
[00:06:58] for the solely purpose for the company.
[00:07:01] So in terms of just adding the similar kind of functionalities
[00:07:04] to that.
[00:07:05] So that other teams are actually working on the backend
[00:07:10] and we are giving up a module called as a development
[00:07:13] automation module, which is like, in terms of if I explain,
[00:07:17] it is a rendering engine.
[00:07:19] So that's what team explained us to prepare the user interface
[00:07:24] that should attract the users with its kind of,
[00:07:28] I mean, attract the users with its unique kind of features.
[00:07:31] to use this kind of engine in deploying the web application so smoothly and effectively.
[00:07:37] So in preparing the user interface, we actually come up with some of the thoughts and unique
[00:07:44] ideas with the team and they have approved some of them and some of them haven't gone
[00:07:48] to the next level.
[00:07:51] Basically the user interface contains a regular navbar along with the several kind of form
[00:07:58] fields but with a unique fashion this time.
[00:08:00] So fields and everything are actually very normal, but we have implemented the styling
[00:08:06] unique one so to attract the customers and users.
[00:08:09] And we took up, I think it's a period of three months.
[00:08:13] So for each week we have create, I mean, we have split the module into separate, separate components,
[00:08:19] which can be very easy for the developers and for my fellow teammates to develop on that.
[00:08:24] And also to create for the, I mean, maybe to make some unique thoughts.
[00:08:29] So as a team leader, I did that and we came up with a great quality of the product where our team is happy about.
[00:08:37] and also the company is actually so pretty good about it.
[00:08:43] Okay, so what was it that users were using this interface to do?
[00:08:50] Yeah, so the interface we actually build is, they have to mention the kind of the details,
[00:08:56] what are the packages that you're actually using in the web application.
[00:09:01] So, I mean, using those things, I mean, after entering those details,
[00:09:06] we have also built like a similar like command prompt along with that,
[00:09:10] like what I say along with that
[00:09:14] So, whatever the things you actually write here, it will eventually contact with the
[00:09:20] backend and will install the packages directly, just like what happens in the global rendering
[00:09:27] engines.
[00:09:28] So, I'm sorry to say that I haven't, I mean, I know what the backend performs, but we haven't
[00:09:34] written the backend logic.
[00:09:35] So, for the frontend, it will actually eventually send the details to the backend and backend
[00:09:40] response to that and sends the packages to install for that kind of project.
[00:09:45] And those all things will be printed in the command prompt so that we actually build like that.
[00:09:50] That one. Along with that, we can also show some warning messages in that command prompt.
[00:09:56] And also it also it will eventually show up all kind of things.
[00:10:00] as an events from starting till the deployment phase.
[00:10:05] Okay, okay, okay.
[00:10:10] Okay, so moving on to a bit of a technical question here.
[00:10:16] So do you have the submission that you provided for us handy with you right now?
[00:10:23] Yes, sir.
[00:10:24] Okay, so I will give you an additional requirement on top of that.
[00:10:29] Can you share your screen and maybe walk us through how you will approach this?
[00:10:33] doing that? Yes, sure. Okay, so now you had built a task management system with like three
[00:10:42] statuses currently, right? So in addition to that, the new requirement right now is that
[00:10:50] you need to let people delete
[00:10:54] a task, if it is deleted, it will go into a trash section, which is like in a separate
[00:11:02] part of the application.
[00:11:04] And after going to the trash, people should still be able to either restore a task or
[00:11:10] they can delete it permanently.
[00:11:16] Okay, you want me to walk through to the code and explain how I can actually implement the logic, sir?
[00:11:21] Yeah.
[00:11:53] Yeah, so is my screen visible for you?
[00:11:54] Yeah, it is, yes.
[00:11:56] Okay, wait a minute.
[00:12:05] So just talk me through what you're thinking as well, right?
[00:12:07] As you are going through it.
[00:12:10] Yeah, so now we are actually discussing about the front end part.
[00:12:15] So this is the home page component.
[00:12:17] And we have written the functionalities for the crude operations.
[00:12:21] I mean, apart from the get operation, we have implemented the functionalities such as for create, update, and delete here.
[00:12:28] And like you have said to I mean, if we delete any task, it should actually get stored in the trash.
[00:12:36] And if the user wants to like based on his decision, he can actually retrieve the details or maybe just leave the details in the trash only.
[00:12:47] So I can implement a trash icon for I mean, first I will be discussing about the front end.
[00:12:53] So I'll be implementing a trash icon where it will be named it as a garbage.
[00:12:59] So whatever the details we actually delete, they eventually get stored in the trash section.
[00:13:05] But I mean, they not get deleted fully, but.
[00:13:08] the deleted items will not be displayed for the front end but they will be there but they will
[00:13:13] be not getting displayed so i mean i'll be uh having a key like uh like is deleted i'll be
[00:13:20] having attribute like is deleted eventually i'll be writing an entity in the back end
[00:13:25] so i'll be initiating uh false as a default value for everything
[00:13:29] Okay.
[00:13:30] Like you can say like here, we can actually eventually have a false Boolean value for
[00:13:36] that.
[00:13:37] So whatever the task is actually created will be having a default value as false.
[00:13:41] So if a user actually deletes the where I mean, deletes the Boolean value will actually
[00:13:45] shift to the opposite value such as true.
[00:13:49] So.
[00:13:50] And I'll be writing the functionality in the wait a minute.
[00:13:54] So in the home section or any page of component that actually is getting affected by that,
[00:14:01] whatever the tasks we are actually getting fixed, that should have a default value as
[00:14:07] a I mean, that should have the.
[00:14:09] is deleted value as false.
[00:14:11] Only those kind of things should be getting displayed
[00:14:13] and whatever the values which are having the true
[00:14:16] will be actually getting displayed when we click on the trash icon.
[00:14:19] Okay.
[00:14:20] It's like actually, it's like we can actually filter those kind of things by that.
[00:14:27] So when we click on the trash icon,
[00:14:30] We will be getting the all kind of tasks that are actually deleted and are actually stored in the trash icon.
[00:14:35] So I'll be having the two icons like I mean, OK, sorry, I'll be having an edit button there.
[00:14:42] Maybe I can use a lucid react for that for implementing the icon.
[00:14:48] I mean, Lucid React is a package where we can actually write, I mean, implement the icons for the icons.
[00:14:56] Okay, so what will you do with that icon? What is that for?
[00:15:02] So, I mean, I'll be placing the icon like a restore, restore icon there.
[00:15:07] Okay.
[00:15:07] So whenever I click on the like that icon, it will eventually show a message like alert message or maybe a window message from that.
[00:15:18] Are you sure that you want to restore this item to the original list?
[00:15:22] So if I click on the S thing, so that task value will eventually change the true value against its false value.
[00:15:30] So that.
[00:15:32] After doing that, the page will be getting re-rendered within milliseconds and we'll
[00:15:38] be seeing that trash icon, a new task list in the trash icon and we'll come to the home
[00:15:44] page, we'll be seeing a new task list as a new task is actually added here from the trash.
[00:15:52] So that's the logic I can think I can actually use here.
[00:15:55] So with the using of the Boolean value and also filter keyword, we can implement this logic.
[00:16:03] Okay. And what about if you wanted to remove permanently from the trash?
[00:16:09] Yes. If you want to remove permanently, I can place a delete icon beside the restore icon too.
[00:16:16] So users, if you want to restore, they can actually restore.
[00:16:19] And if they want to delete, we can eventually delete it by performing the functionality of delete task,
[00:16:24] where it will delete the task permanently from the database and also from the front end server.
[00:16:32] Okay.
[00:16:38] Okay.
[00:16:42] Okay, so let's move on to another problem.
[00:16:45] So I'll tell you a scenario of what we are trying to achieve.
[00:16:50] And I want you to talk me through how you might approach that.
[00:16:54] Right.
[00:16:55] So for Restomart, we are trying to build a billing and price management system.
[00:17:02] So here we have many products that we are selling to our customers.
[00:17:09] And we want this application to be used by the people who actually bill and send out these products.
[00:17:17] So we have a number of different customers and a number of different products that we sell.
[00:17:22] And for each of our customers, based on our relationship, we have to provide them a different price altogether.
[00:17:31] Okay, sir.
[00:17:31] So we want our application to be able to bill based on which customer we are billing for.
[00:17:37] It should be able to use that appropriate price for that customer.
[00:17:42] Okay.
[00:17:43] So firstly, I want you to think through this and tell me what should be the data model and database for achieving this.
[00:17:53] Okay, so you're telling me to like the price adjust based on the kind of, I mean, different types of users, sir?
[00:18:03] Let's say every customer should have their own price.
[00:18:10] Okay, I just got a bit of confused. So can please explain that one?
[00:18:15] Okay, so see, you say there are 10 customers.
[00:18:19] Okay.
[00:18:20] Right. And there are five products.
[00:18:23] Okay.
[00:18:24] So for customer one, for each of the five products, there is a different price that we will be providing.
[00:18:31] Okay, which will be different from for customer to we will be providing a different five prices for those same five products.
[00:18:40] Because of the because of the nature of relationships.
[00:18:44] We will literally have like per customer specific pricing.
[00:18:48] Okay.
[00:18:53] So how would you design a database for handling this scenario?
[00:19:00] Yeah.
[00:19:18] Can you give me some time for thinking further, Rupesh?
[00:19:22] Yes.
[00:20:06] Okay, I think I have an approach, but I don't know if it's correct one or not.
[00:20:12] Yeah, that's okay.
[00:20:13] So like if the users is actually getting offer with the different prices for the, I mean, different products, I would eventually use a relational database model.
[00:20:25] Okay.
[00:20:25] Okay.
[00:20:26] A separate pricing table, which would actually help in establishing the relationship between
[00:20:31] the users and products.
[00:20:33] Okay.
[00:20:34] That's what I'm actually thinking.
[00:20:36] So talk me through in detail about what would be the tables, what is the relationship, what
[00:20:42] columns you might put there?
[00:20:43] Okay, let's say I'll be taking three tables.
[00:20:49] So the first one will be the users table with the kind of values like user ID, name and
[00:20:54] email.
[00:20:55] Okay.
[00:20:56] And I'll be taking the second table like products table with the product ID, product name and
[00:21:00] base price.
[00:21:01] And I'll be taking the third table.
[00:21:03] I think I'll be taking the third table like user product prices table.
[00:21:10] Okay.
[00:21:11] Where I'll be having the kind of keys like user key.
[00:21:17] I mean, sorry, in this table, I'll be maintaining the keys.
[00:21:23] to establish the relationship between the users and products.
[00:21:26] So for that user ID, product ID will be there.
[00:21:29] And after that, so here what we do is the user product prices
[00:21:35] or the table that I discussed, it will help in establishing
[00:21:38] the many to many relationships.
[00:21:41] between users and product with the customer, I think with the price range.
[00:21:46] So this allows each user to have a different price for each product and also avoids the
[00:21:53] duplication, I mean, sorry, and avoids the redundancy.
[00:21:56] So for that, I would use the foreign key constraints to maintain this, what do you say, data integrity.
[00:22:07] Okay, got it.
[00:22:11] Okay, great.
[00:22:12] All right, so that, okay, so you have set up this database and now can you talk me through
[00:22:19] how you will go about like building the actual billing application in terms of like what
[00:22:26] should be the UI like and what kinds of things you might build for it?
[00:22:30] I'm sorry, okay, you are discussing about UI?
[00:22:33] Yeah, so now database part you have built this database.
[00:22:37] Now, what more should you build to implement this billing system in terms of BDI or backend?
[00:22:42] Can you just think through that as well?
[00:22:45] Yeah, you said about the different kinds of customers.
[00:22:48] So I would eventually go with for the regular users.
[00:22:53] I mean, I can classify the users as two kinds of types for regular users and for the non-regular users.
[00:23:00] So for regular users, I'll be showing up the product listing page, which will eventually show the product image, name and its description.
[00:23:10] Also, it will actually display the price below that.
[00:23:15] And also it will be having the kind of normal buttons like add to cart and buy now buttons.
[00:23:20] Also, when the user logs in, the front end actually goes to the back end and to get the prices specific to the particular user ID.
[00:23:30] So, I mean, if it's a regular user, then like taking that as a key, it will eventually show up the prices what it should show.
[00:23:38] If there is no price exist for that user, then it will show up the normal basic base price for the from the products table.
[00:23:46] And we can also implement like this actually works for the non-regular users.
[00:23:51] And along with that, it is very essential for every kind of web application to maintain an admin dashboard.
[00:23:58] So for the admin users, I will show the product price management where admin has the authority and control to set the price or edit the price based on the type of user.
[00:24:14] So he would actually select the product and what are the users.
[00:24:19] are actually going to that product and he'll be setting the price whatever the admin actually wants to belong to that ID.
[00:24:30] And I'll be showing up a drop down model for that.
[00:24:33] So for the drop down, that helps in selecting the user and the product.
[00:24:38] And also I'll be having an input field to enter the custom price.
[00:24:43] And for like when we're actually implementing the form kind of things, it's very essential to implement the validation logic too.
[00:24:50] So I'll be performing the validation checks and there.
[00:24:52] Along with that, the additional.
[00:24:56] handling will be based on the I mean will be on the performance and clean
[00:25:01] coding and will be taking up the responsiveness because the responsiveness
[00:25:05] also plays a crucial role for the both kind of users
[00:25:11] Okay, okay.
[00:25:19] All right, awesome.
[00:25:20] Okay.
[00:25:21] So one final thing I would like to ask you about is in terms of deployments, have you
[00:25:28] had experience deploying applications after you have built them?
[00:25:35] Yeah, yes, sir. So till now I have built a set of web applications. So from that, I have
[00:25:42] deployed five web applications. Like most of them web applications have actually gone
[00:25:48] through the render and Netlify. I think I have used the Vercel very, very well.
[00:25:55] I mean, not that much, but I actually use it render mostly.
[00:26:00] So in terms of backend and also in terms of sometimes front end for the render and sometimes I use actually Vercel.
[00:26:06] So, I mean, Vercel is a rendering engine which eventually builds up the I mean, which actually deploys the product very smoothly and very fastly.
[00:26:14] So I would actually use the Vercel for the front end deployment.
[00:26:22] Okay, okay.
[00:26:25] All right.
[00:26:26] So at Restomat, we actually have an AWS VPS system, right?
[00:26:31] EC2 instance.
[00:26:33] And we want to deploy something.
[00:26:36] Whatever is being built, we want to deploy us through that.
[00:26:41] So...
[00:26:42] So how do you think you might go about doing that?
[00:26:47] Oh, wait, you said Restomat has an AWS.
[00:26:51] AWS EC2 instance, VPS, right?
[00:26:54] We have our own EC2 instance.
[00:26:57] Okay.
[00:26:57] And we need to be using that for our deployments.
[00:27:01] We don't have like a separate Vercel or a separate render.
[00:27:06] We have one instance where we want to maintain all of our technical assets and deployments and everything.
[00:27:12] Okay.
[00:27:14] How do you think you will go about doing that?
[00:27:19] Okay, let me take a few, like 10 seconds for this.
[00:27:24] Yeah.
[00:27:38] Yes, sir. So first to deploy the any kind of application on the AWS or EC2 instance that you actually said.
[00:27:48] So I'll be following a similar for some steps. First step will be that I'll be launching an EC2 instance.
[00:27:54] So I'll be logging into the AWS management console and go to EC2 and launch an instance.
[00:28:00] and also after choosing the instance i would have to choose the instance type for that
[00:28:06] uh and other credentials i mean other details now i'll be connecting that instance like uh to the
[00:28:14] my application so once the instance is running
[00:28:17] it will be confirming that it's actually connected to my application.
[00:28:22] I'll be installing the required dependencies there.
[00:28:26] Like based on the technical stack, whatever the I use,
[00:28:28] I would actually install the required packages there.
[00:28:31] Okay.
[00:28:32] And then I'll be...
[00:28:34] I mean, I'll be pushing my project to the GitHub.
[00:28:39] So if you have that files, I would actually upload that project to there.
[00:28:44] And as a regular process on setting up the environment variables.
[00:28:49] And then I think I can start the application by some comments.
[00:28:53] I'm not actually aware of the comments that are needed to running of the application because
[00:28:58] I have used AWS, but it's a long back I have used the instance.
[00:29:04] So I just got a bit of idea about that.
[00:29:08] Okay.
[00:29:11] But we will need you to figure it out when you actually do it.
[00:29:18] I'm sorry?
[00:29:19] When you actually are working on it, you should be able to figure it out.
[00:29:24] That is the most important thing for us.
[00:29:27] Yeah, yes.
[00:29:27] I mean, I know the background work of how we can actually deploy, but...
[00:29:33] Yeah, in terms of hands of experience, I need a bit more in terms of indulging myself to this to do the tasks efficiently.
[00:29:52] Okay.
[00:29:56] That was pretty much what I had.
[00:30:00] to ask you.
[00:30:02] Okay.
[00:30:04] Okay. You want me to explain
[00:30:06] any project actually
[00:30:07] recently?
[00:30:09] No, no, no. That's fine.
[00:30:14] All right, then.
[00:30:17] Okay, can I ask a question?
[00:30:19] I mean, actually based on the company that we are working.
[00:30:23] Like, what are the kind of,
[00:30:26] you said your restaurant company
[00:30:28] is actually building up the enterprise applications.
[00:30:33] Sorry, you want to know what our business does?
[00:30:36] I mean, what are the technologies that Restomat is actually focusing on?
[00:30:42] I mean, we have several upcoming technologies right now.
[00:30:46] And what are the technologies that the company is actually focusing on right now?
[00:30:51] See, honestly, for us,
[00:30:55] We are like a very early stage company.
[00:31:00] the outcome is what matters more than the technology.
[00:31:04] Yeah.
[00:31:04] So yes, we are not focused on a specific technology.
[00:31:09] We have as a business, our end goal is we need to serve our customers,
[00:31:13] which are restaurants, and we are building our applications to serve them.
[00:31:17] So whatever technologies needed to achieve those outcomes, we want and we will be using.
[00:31:24] Right. So, okay.
[00:31:27] This is not like we have a built up tech stack that is fixed or anything.
[00:31:30] Like we are not in that stage yet.
[00:31:33] Okay. Okay.
[00:31:34] So you pick up the technologies that actually relevant to the particular web
[00:31:39] application or particular project.
[00:31:41] Yes.
[00:31:42] Yeah. Okay.
[00:31:43] Got it.
[00:31:44] And a lot of our work will be integrating the other systems as well that are
[00:31:48] already being used.
[00:31:51] Okay.
[00:31:52] Like a lot of processes are happening like offline
[00:31:54] of like through WhatsApp or through like regular Google
[00:31:58] Sheets or something, right?
[00:31:59] So having an application that integrates all of these
[00:32:02] and provides one consistent operational system
[00:32:07] is kind of going to be our end goal.
[00:32:11] Okay, that's great.
[00:32:13] So it will be a lot of like figuring out and working with diverse tech.
[00:32:21] Okay.
[00:32:29] anything else uh okay i'm okay i'm okay with everything sir okay cool thank you so much
[00:32:38] thank you
[00:32:53] Hello, ma'am. You want to leave the call?
[00:32:58] Yes, yes, you can.
[00:33:00] Yeah, thank you.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment