Frontend Task
Frontend Task
js)
Round 2 — Take Home Assignment
Over the next 5 days, you’ll be building a ‘Ride Sharing App’ — a web app that allows users to make and manage
cab bookings with ease:
1. The take-home assignment has been broken into two parts — (a) the basic task, and (b) extra credit. For
evaluation purposes, it is only compulsory to attempt all sub-parts of (a) the basic task. The nature of extra
credit is such that you only get points for extra credit if and only if all sub-parts of (a) the basic task have
been completed and are fully functional.
2. You must exclusively use React.js to build and complete this assignment. Use the Next.js framework. It is
also compulsory to exclusively use either/and TailwindCSS or/and shadcn/ui build the UI for this assignment.
3. Remember — you only have to build the frontend for this assignment. You can use dummy data wherever
necessary / random free APIs from the internet.
4. One of the most important principles of frontend development is user interface / user experience design. This
is a strong metric for evaluation, so we strongly recommend using Dribbble / Behance to find inspiration for
your application’s design.
5. You have 5 days to complete this assignment. You are allowed to use any internet resources (eg. ChatGPT,
StackOverflow, Cursor, Devin, etc).
6. Create a private repository on Github titled ‘FJ-FE-R2 <Your-Name> <Your-College>’ and use this repository
over the duration of this take-home assignment. Share this repository with @psrth and @paramkpr.
7. Evaluation is extremely subjective and is done on an individual basis. However, the general parameters that
we look for are (in no particular order): percentage of the problem attempted, functionality, UI design,
Lighthouse score, performance, code readability, documentation, logic, code efficiency, user experience,
extra initiative.
2
Part A — The Basic Task
Your task is to develop a web application frontend where users can book rides, track their ride history, and manage
their profiles. The development of this project will be phased to ensure structured progress.
1. User Authentication: Implement user authentication using this dummy API. Allow users to register, log in, and
manage their profiles.
2. Ride Booking: Design and implement a ride booking system where users can: Set pickup and destination
locations, and then view their ride’s route on a map. Choose ride type (e.g., economy, premium). View
estimated fare before booking.
3. Ride History: Allow users to view a history of their past rides with details such as date, fare, and driver’s
name.
4. Profile Management: Enable users to manage their profiles, including updating their information and viewing
their ride statistics.
5. Payment Integration: Integrate a payment gateway to facilitate ride payments. Allow users to add, update,
and remove payment methods. (Stripe’s API testing sandbox is free-to-use).
6. Ride Sharing: Introduce a ride-sharing feature allowing users to share rides with others and split the fare.
7. Feedback System: Implement a feedback system where users can rate their rides and leave comments for
the driver.
8. Notification System: Set up a system to notify users of ride updates through toasts / alerts.
1. Live Chat: Using socket.io, build a live chat room between the driver and the user to coordinate the exact
pickup details.
2. Dark Mode: Introduce a light/dark mode toggle to enhance the app’s visual appeal and user experience.
3. Mobile Responsiveness: Ensure that the application is usable on all screen sizes.
3
Day 5: Deployment
Deploy your application to a production server to make it accessible online. Consider platforms such as Vercel,
Netlify, or AWS for deployment. Ensure the security and optimization of the application during deployment.
Day 5: Testing
4
Part B — Additional Features
- Real-Time Ride Tracking: Implement real-time ride tracking, showing the user's current location and the
driver's location on a map.
- Loyalty Program: Introduce a loyalty program where users can earn points and avail discounts on future
rides.
- Integration with OpenAI: Explore any LLM-based integration that you can think of, such as a chatbot for
customer service.
- Accessibility Features: Implement accessibility features, such as voice commands and screen reader support,
to enhance the user experience for differently-abled individuals.
5
Submission
On the last day, a Google Form will be shared with you where you will have to submit the following items:
The deadline for submission will be 11.59 PM (IST). Late submissions will not be accepted or evaluated under any
circumstances.
Best of luck!