Technical Assignment for Full Stack Developer Intern (Final Version)
Objective:
This assignment is designed to assess your ability to build and deploy a simple, end-to-end
full-stack application. It will test your skills in:
● Frontend development (React)
● Backend development ([Link]/Express or FastAPI)
● Database management
● Basic deployment
Project: Mini Vendor Catalog Manager
Introduction:
Your task is to build and deploy a simplified version of the "Vendor Dashboard" for our ESP
platform. This web application will allow a "vendor" to add, view, and delete products from their
catalog. The final submission must be a live, publicly accessible application.
Core Features to Implement:
Frontend ([Link]):
● Create a simple, clean, and user-friendly UI using React.
● Product List View: Display all products in the catalog. Each product should show its
name, a short description, and price.
● Add Product Form: Include a form with fields for "Product Name," "Description," and
"Price."
Functionality:
● Form submission: When the form is submitted, the new product should be sent to the
backend and added to the database.
● Automatic updates: The product list should update automatically to show the new
product without needing a page refresh.
● Delete button: Each product in the list should have a "Delete" button that removes the
product from the database and updates the view.
Backend ([Link] with Express OR Python with FastAPI):
Create a simple REST API with the following endpoints:
● GET /api/products: Fetches all products from the database.
1
● POST /api/products: Adds a new product to the database. The request body will contain
the product's name, description, and price.
● DELETE /api/products/:id: Deletes a product by its unique ID.
Your backend should handle incoming requests, interact with the database, and send back
appropriate JSON responses.
CORS: Ensure your backend has CORS (Cross-Origin Resource Sharing) enabled so your
deployed frontend can make requests to it.
Database (PostgreSQL or MongoDB):
● Set up: A cloud-hosted database. Do not use a local database for the final submission.
● Create: A single table/collection called products.
● Schema: The product's schema should include fields for id (unique identifier), name
(string), description (string), and price (number).
Technical Stack & Creative Freedom
Core Stack:
● Frontend: [Link]
● Backend: [Link] with [Link] OR Python with FastAPI
● Database: A cloud-hosted SQL (e.g., PostgreSQL) or NoSQL (e.g., MongoDB) database.
Your Choice of Tools:
You are free to use any additional libraries, UI component kits (like Material-UI, Ant Design,
Chakra UI, Tailwind CSS), or tools you are comfortable with. The goal is to build a functional and
well-designed application. Feel free to use state management libraries (like Redux or Zustand)
or data-fetching libraries (like Axios or TanStack Query) if you wish. Show us what you can do
with the tools you know best.
Evaluation Criteria:
● Functionality: Does the live application meet all the core feature requirements?
● Code Quality: Is the code clean, well-organized, and readable?
● User Experience: Is the UI intuitive and easy to use?
● API Design: Is the REST API well-structured and logical?
● Deployment: Is the application successfully deployed and publicly accessible?
● Problem-Solving: How did you approach the task and overcome any challenges?
2
Submission Guidelines & Free Hosting Options
To complete the assignment, you must deploy your application so it is live on the internet. Below
are some recommended free services for hosting your frontend, backend, and database.
Submission Steps:
To complete the assignment, you must deploy your application so it is live on the internet. Below
are some recommended free services for hosting your frontend, backend, and database.
Submission Steps:
1. Deploy your application: Use the services below (or any other free service you prefer) to
host your frontend, backend, and database.
2. Code on GitHub: Upload your entire project (both frontend and backend folders) to a
single public GitHub repository.
3. Create a [Link]: Your [Link] file is crucial. It must include:
4. A live link to your deployed frontend application.
5. The base URL for your deployed backend API.
6. Clear instructions on how to run the project locally (for verification purposes), including
any environment variables needed.
Share the link: Send us the link to your public GitHub repository.
Recommended Free Hosting Platforms:
1. For Your Frontend (React App):
2. Vercel: Excellent for React applications. Offers a generous free tier with automatic
deployments from GitHub.
3. Netlify: Another top-tier option with a great free tier and continuous deployment from Git.
4. GitHub Pages: A straightforward, free option for hosting static sites directly from your
GitHub repository.
5. For Your Backend ([Link] or Python) + Database:
6. Render: A popular choice that is very easy to use. The free tier allows you to deploy a
web service (your backend app) and a PostgreSQL database. Free services may "spin
down" after inactivity, which is acceptable for this assignment.
7. Supabase: An excellent option if you want to use PostgreSQL. It provides a free-tier
managed Postgres database.
8. MongoDB Atlas: If you choose MongoDB, Atlas offers a perpetual free "M0" shared
cluster, which is more than enough for this assignment. You can host your backend on
another service (like Render) and connect to your Atlas database.