<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Projects | Nikhil Ujjwal</title><link>https://nikhilujjwal.netlify.app/project/</link><atom:link href="https://nikhilujjwal.netlify.app/project/index.xml" rel="self" type="application/rss+xml"/><description>Projects</description><generator>Wowchemy (https://wowchemy.com)</generator><language>en-us</language><lastBuildDate>Fri, 29 Apr 2022 00:00:00 +0000</lastBuildDate><image><url>https://nikhilujjwal.netlify.app/media/icon_hu0b7a4cb9992c9ac0e91bd28ffd38dd00_9727_512x512_fill_lanczos_center_3.png</url><title>Projects</title><link>https://nikhilujjwal.netlify.app/project/</link></image><item><title>Mercari’s Large Scale System Design Hackathon</title><link>https://nikhilujjwal.netlify.app/project/example/</link><pubDate>Fri, 29 Apr 2022 00:00:00 +0000</pubDate><guid>https://nikhilujjwal.netlify.app/project/example/</guid><description>&lt;p>Application Features&lt;/p>
&lt;p>The application has roles for users (Patient, Doctor and Hospital). Based on the role the user
can login/signup into the app. For a patient as a user, the home screen will show a dashboard
allowing the user to book an appointment and check previous appointments.In the book an
appointment tab the user can select available hospitals and doctors available in that given
hospital to book his/her appointment for diagnosis at an available time slot. Check previous
appointments tab is used to keep track of all the previous appointments for that given user.
For the doctor as a user, the home screen will show a dashboard allowing the user to check
appointments. From the appointment tab the doctor can directly go to the diagnosis of the
patient. In the diagnosis page the doctor can add the prescription for the patient along with the
medicine&amp;rsquo;s quantity and finally conclude the diagnosis with a close appointment button.
For the hospital as a user, the home screen will show a dashboard allowing the user to check
inventory, room information, doctor details. In the inventory tab they can check for the available
medicines in the inventory of the hospital along with their quantity and price. In the room
information tab, they can check for the availability of the rooms in the hospital along with the
number of the available rooms. In the doctor details tab, they can check the profile of doctors in
the hospital.&lt;/p>
&lt;p>Here we will be making use of docker containers to host multiple scalable instances of different
services.
The 4 basic services that we have implemented are -
-Appointment management (to manage appointments between doctors and patients)
-Inventory management (to keep an account of drugs, equipments etc)
-Infrastructure management (alot beds/rooms)
-User authentication (login/signup)
In our implementation we can scale the frontend servers that handle requests from the client
side directly to any n instances depending on the number of users that use the application.
Since these instances are all connected through a single nginx container , this nginx container is
responsible for distributing the requests in a round robin fashion.
In this implementation it is very simple to scale up the frontend servers by simply changing the
input to the docker-compose file and then adding the address of the newly created instance the
nginx conf file.&lt;/p>
&lt;p>Design Decisions -&lt;/p>
&lt;p>Backend Framework - We chose to use the Flask framework because it comes stripped
of unnecessary modules that we don’t need. Also, Flask is highly scalable and is used by
companies like Pinterest to manage about 12 billion requests per day.&lt;/p>
&lt;p>Database ( NoSQL vs SQL ) -
We believe that vertical scalability offered in SQL databases by increasing the
hardware capacity of the same server ( adding ram, cpus etc ) has a limit as there is a
capped amount of hardware accessories that can be added to a single server ( like
storage slots etc ) .
But NoSql databases offer horizontal scalability, therefore we can simply increase the
capacity of the database by adding more servers into the mix. Therefore, there is no
limit in terms of scalability.
Hence, we chose to go with a NoSQL database ( Firestore ).&lt;/p>
&lt;p>Load Balancing - We used Nginx as a load balancer because a software-based load
balancer is much less expensive than hardware-based solutions with similar capabilities.
Nginx also offers more capabilities in NGINX plus.&lt;/p>
&lt;p>UI look and feel - We decided to use the Materialize UI library( HTML/CSS) to design all
the frontend components like buttons, inputs etc. Because we believe they offer a very
clean look to the website and give the site a comforting feel which is very much required
from a hospital management perspective.&lt;/p>
&lt;p>User Experience - To ensure that the user experience remains smooth throughout the
app, we have added certain features in the webapp. For example, we have made the
login/register process very smooth. You do not need to navigate to multiple pages for
login and signup. There is just a single page which asks for your username for login. If
you already have an account, then it asks for your password and logs you in. Otherwise,
it asks for other details and then creates a new account for you.
Similarly, we have reduced the process of registering as a patient, doctor, and hospital
into a single page where you enter the role you wish to pick, and depending on that, your
account gets created.&lt;/p>
&lt;p>Security considerations - For storage of password, we have used sha256_crypt hash
function for hashing passwords before storing them in the database. This prevents
storing any passwords in the plaintext, and is an important security aspect for our users.
In the frontend, we have not exposed any security keys or credentials for database
access. All the database reads are made through the backend and the microservices
and their credentials are protected through .gitignore file and environment variables.&lt;/p></description></item><item><title>Adulting 101, A one stop solution for all finances</title><link>https://nikhilujjwal.netlify.app/project/p3/</link><pubDate>Fri, 18 Feb 2022 00:00:00 +0000</pubDate><guid>https://nikhilujjwal.netlify.app/project/p3/</guid><description>&lt;p>Tech stack used: Python, Django, HTML, CSS, JavaScript, Dialogflow&lt;/p>
&lt;ul>
&lt;li>The Web App is built using Python-based web framework Django, key features include add page, edit page,
generate random page, ask from AI chat bot&lt;/li>
&lt;li>Implemented a Markdown to HTML Converter that will automatically convert your markdown code to a HTML
page whenever you add a new page.&lt;/li>
&lt;/ul></description></item><item><title>Typing based Biometrics Authentication</title><link>https://nikhilujjwal.netlify.app/project/p2/</link><pubDate>Mon, 27 Dec 2021 00:00:00 +0000</pubDate><guid>https://nikhilujjwal.netlify.app/project/p2/</guid><description>&lt;ul>
&lt;li>Aiming to create an application to authenticate users based on keystroke dynamics, on their devices, in real-time. It will adapt for any future changes in the typing patterns of users as well. Will also address privacy concerns.&lt;/li>
&lt;li>Thus typing patterns will act as Biometrics for vulnerable devices. Also aiming to publish a research paper on this.&lt;/li>
&lt;/ul></description></item><item><title>Fake Face Image (generated using GAN’s) Classification</title><link>https://nikhilujjwal.netlify.app/project/untitled-1/</link><pubDate>Tue, 07 Dec 2021 00:00:00 +0000</pubDate><guid>https://nikhilujjwal.netlify.app/project/untitled-1/</guid><description>&lt;p>Nowadays, with the advent of Generative Adversarial Networks (GANs), there are lots of fake images and videos of people on the internet. These algorithms can generate very accurate and realistic looking images and videos. This is a big issue because it can be used to attack public figures, spread fake news, etc. So, to identify whether any particular piece of content is fake or not is an important problem that needs to be tackled.&lt;/p>
&lt;ul>
&lt;li>Created a Machine Learning model using CNN and achieved 80% accuracy to classify these images as real or fake.&lt;/li>
&lt;li>Led a team of 2 &amp;amp; Ranked 3rd among all the competitors in Intra-IIT competition.&lt;/li>
&lt;/ul></description></item><item><title>Canteen Order Management System</title><link>https://nikhilujjwal.netlify.app/project/p4/</link><pubDate>Sun, 17 Oct 2021 00:00:00 +0000</pubDate><guid>https://nikhilujjwal.netlify.app/project/p4/</guid><description>&lt;ul>
&lt;li>Created a webapp that could manage database for the food orders of various users who can register on it.&lt;/li>
&lt;li>Used HTML, CSS, Bootstrap, PHP for creating a webpage with smooth UI and managed Database using MySQL.&lt;/li>
&lt;/ul></description></item><item><title>Hand Gesture Recognition System</title><link>https://nikhilujjwal.netlify.app/project/p5/</link><pubDate>Mon, 27 Sep 2021 00:00:00 +0000</pubDate><guid>https://nikhilujjwal.netlify.app/project/p5/</guid><description>&lt;p>Created a system to identify the hand gestures of the user at a restaurant and tried to automate the food Ordering process.
Led a team of four members, we created our own dataset and achieved an accuracy of 99% for recognition in real-time.&lt;/p></description></item><item><title>JLR's Damping Energy Harvesting System</title><link>https://nikhilujjwal.netlify.app/project/p6/</link><pubDate>Thu, 04 Mar 2021 00:00:00 +0000</pubDate><guid>https://nikhilujjwal.netlify.app/project/p6/</guid><description>&lt;p>Ever thought of an Idea that you can harness some Energy when you feel jerks while Travelling in a vehicle!!!
Exactly, we worked upon this great concept and made a Working Damper and simulated it on real-time typical Indian Road using MATLAB Simulink. We were able to achieve almost 70% Efficient System.&lt;/p></description></item></channel></rss>