0% found this document useful (0 votes)
26 views9 pages

Campus MERN Application Development Test Topics

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
26 views9 pages

Campus MERN Application Development Test Topics

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

Round 3: SaaS Application

Development Test

IMPORTANT INSTRUCTIONS:

1. This is a PROGRAMMING TEST, you need to write the code on your own. If you
plagiarise your code or share it with your class / batchmates in parts or in full, we’ll
blacklist you from CartRabbit interviews for life.

2. You need to write fully-functional code.

3. Code should be fully commented. Here is a guide with examples:

https://medium.com/javascript-in-plain-english/5-best-practices-for-writing-clean-javas
cri pt-be366adb2859

4. Along with the code, you need to write detailed instructions on how to execute and
deploy your code. Step by step instructions are required. See an example:
https://lodash.com/

5. You need to submit the Database Schema along with your code.

6. Sample data should be attached

SUBMISSION INSTRUCTIONS:

1. Create a GitHub account

2. Create a PRIVATE REPO. It should be a PRIVATE repository. It is SUPER DUPER IMPORTANT


(If you create a publicly available repository and host the code, your candidature will be
REJECTED immediately ). Guide to creating a private repo in your Github account:
https://www.evernote.com/l/AjyygFqX0A1Mfbefdzfr1o6u3UHmB7XwYyI

3. Push the code to your repository.

4. Use readme.md file to add the code execution instructions and other information
required for deploying your code in the same repository.
5. Finally, when you ready to submit the code, under your Repository settings -> Manage
access, send an Invite to [email protected] (Refer this screenshot:
https://www.evernote.com/l/AjzEXv6h451Ot5JtQj4ooKq8YDOjVBSHW1c )
6. Send an email to [email protected] with URL to your github repository, your name,
your email address, phone number.

NOTE: We will NOT accept submission in any other modes like PDF or TXT or any other
formats.

DURATION

15 days. The quicker you develop and submit, the higher your chances of getting selected!

If you have any doubts, regarding the questions, send an email to: [email protected]
PROGRAMMING LANGUAGES ALLOWED:
Backend / API:

You can choose any ONE of the following languages to write your code:

C, C++, Python, Java, NodeJS.


You can use any framework. Example: SpringBoot (Java), DJango (Python), Express (NodeJS)

Our preference: Python, Java, NodeJS.

Frontend:

You can use ANY or ALL of the following to develop your frontend (The User Interface)

Javascript (any framework is allowed: ReactJS / Angular / VueJS), jQuery, HTML, CSS,
Bootstrap. Even Java Server Pages (JSP) is ok.

Our Preference: ReactJS

NOTE: If you are NOT familiar with creating the frontend, then you can just develop a RESTful
API alone and use a PostMan collection to demonstrate the functionality.

Database:
The database should be one of the following
MySQL / PostgreSQL / MongoDB
If you prefer any cloud hosted database, then you can also choose MongoDB Atlas / Firebase
Realtime DB / Firestore / AWS DynamoDB
Programming Tests
Here are FOUR questions / scenarios for the application development. You can choose ANY
ONE of them.
Choose ANY ONE of the following to develop the application. Choose ONLY ONE.

1. Guest room booking application


2. Bike service application
3. Waitlist application
4. Micro credit application

1. Guest room booking application

Overview

Think about house owners who allow paying guests to stay in their home for a short period. Say,
less than 30 days.
The house owners need an application to take bookings and manage their bookings properly.

Example:
John owns a house in Coimbatore. He rents TWO rooms in his house for paying guests. A
guest can book a room. Minimum stay is 1 day. Maximum 30 days.

Andrew has two houses. He has 5 rooms in these two houses. A guest can book a minimum of
1 room for 1 day. Maximum booking duration can only be 14 days.

The app allows house owners like John and Andrew to register their properties, upload the
details of each room (like a name for each room, its floor size, number of beds in the
room, amenities in the room).

In the end user perspective (customer), any one can book a room.
Customers can see a list of all rooms from different house owners. They can browse, see the
details of each room, check availability. Then book a room. Once a room is booked for a period,
other customers should not be able to book it.
Specifications:

- Two types of user management required: House owners, customers

House owners:
- Can register for an account with an email address and a mobile number - Create / edit /
delete rooms and their details, set the minimum, maximum booking period. Set a rent
amount for each day
- Upload photos

Customers:

- Can register for an account with an email address and a mobile number -
They can browse all rooms available for booking
- View details of each room, and their photos
- See an “Availability calendar
- Choose the dates and book

2. Bike service application

Overview

This application is for owners of Bike service stations. It helps the owners to list all the services
they offer. Customers can choose one or more services to book

Example:

John owns a service station. He provides the following services:


- General service check-up
- Oil change
- Water wash

John’s customers can register for an account with their email address and mobile number.
They can choose a service. Book the service at a particular date.

Once the customer booked a service, John receives an email notification with details about the
service requested by the customer.

Once the service is completed, john will mark the specific booking (of a customer) as “ ready
for delivery”
The customer will receive an email saying that his bike is ready for delivery.

Once delivered, John will mark the booking as “completed”

Specifications:

Bike station owner:


- Should be able to create / edit / delete all his services and their details -
View a list of all bookings ( pending, ready for delivery and completed) -
View details of each booking
- Mark a booking as ready for delivery
- Mark a booking as completed
- Receive an email whenever a booking is made

Customers
- Should be able to register for an account with his email address and mobile number -
Book a service at a particular date
- See the status of his booking
- See all his previous bookings
- Receive an email as soon as his booking is ready for delivery

3. Waitlist application

Overview

Please create an application that helps potential customers to sign up to a waiting list of a new
iPhone product.

Functionality Required in the Application:

- The app allows a potential customer to sign up to the waiting list with his email
address. (he will see a screen with an email address)
- As soon as he signs up, his position in the waiting list will be displayed. (The first customer
gets the default number of 99. When the next customer signs up, his waiting list
position is 100)
- Once he signed up for the waiting list, he will get a unique referral link - He
can share this link to his friends.
- If their friends sign up using his referral link, he will “move up” by 1 place in his position
(Example: John has joined the wait list at position: 120. He referred 10 of his friends.
When they joined, John’s position will go to 110)
- Once a customer reaches Position 1, he will receive an email with a coupon code to
purchase the new product.
So this involves:

An administrator area:

1. Create, edit, read, list, delete a wait list


2. View the customers who signed up for the waiting list.

Frontend:
1. A sign up form for a potential customer to enter his email address and join the waiting
list
2. Show them their position as soon as they signed up.
3. Receive a unique link as soon as a customer signed up
4. Receive the email as soon as the customer reaches the Position 1

NOTE:
We have intentionally left out some of the minute details required for this application. Use
your creativity while developing the application.

Clue: Think you are in a Game. The more invites you do, the best chance of getting to the top
position.
4. Micro credit application
Overview:

The application helps “Salaried persons” to apply and get approved for micro loans
automatically using Artificial Intelligence.

The app lets any Salaried person register for an account with their email address and mobile
number.

Once registered, he will be asked to fill a number of details:


1. Full Name
2. Address
3. PAN Number
4. Company where he his employed
5. Current salary
6. Previous salary
7. Owns a house?
8. If rented, what is the rent amount
9. Approximate grocery expense per month
10.Current EMIs
11.Date of previous hike
12.Estimated date of next hike
13.Name of his bank
And more…. (Details are not given intentionally because you need to think of all the data points
required for this requirement and capture those details from the applicant. Example: You can
ask “how frequent you visit the malls in a month”... If the applicant with a salary of 20k per
month says, 4, that means he goes there every month 4 times and his average spending in the
mall alone is around 2000 to 4000. If we grant a loan of 100000, and if his repayment period is
12 months, the probability of his repayment is very unlikely. )

Once the details are captured, the person should be able to apply for the loan. Once the
customer applies for a loan, the app will review his details, analyse it and run its algorithm to
determine:
- Is the person eligible for a loan ? or should be rejected
- If yes, how much loan amount can be granted?
- What could be the repayment period and EMI?
- Risk score
These results should be displayed to the customer after he submits his loan request.
The app should have a “well written algorithm” to analyse the details of the customer, check
similar loan requests from customers with similar profiles, analyse the spending habits,
determine the eligibility based on various criteria and more.

NOTE: A well-written, thoughtful, creative algorithm will be given weightage. And You should
be able to explain the logic behind your algorithm, recommendation / prediction engine
during the interview.

Summary
- 15 days is the time to submit your code.
- Code should be submitted only via a GitHub private repository - If you
have any doubts, regarding the questions, send an email to:
[email protected]

You might also like