Full-Stack React and Node
Full-Stack React and Node
js Developer Internship
Assignment
Assignment Title:
Build a Food Delivery System: Backend API with Node.js and Frontend Dashboard with
React.js
Note: We also consider submissions that include only the Frontend or only the Backend for
evaluation.
Objective:
The goal is to assess your skills in Node.js and React.js by designing a food delivery system
that includes user authentication, menu management, and order tracking.
Requirements:
Tech Stack:
● Node.js, Express.js
● MongoDB
● Mongoose for schema management
Requirements:
3. UI and Styling:
● Search/Filter: Allow users to search tasks by title or filter tasks by status (completed
or pending).
● Pagination/Infinite Scroll: Implement pagination or infinite scroll for displaying large
task lists.
● Authentication: Implement JWT-based authentication for users to register, log in,
and manage tasks individually.
● Sorting: Enable sorting of tasks by title, creation date, or status.
Deliverables:
1. Code Repository:
○A public GitHub repository containing the complete source code for both
the front-end and back-end.
○ Ensure your code is well-organized, and commit messages are clear and
meaningful.
○ Include a README file that includes:
■ Setup instructions for both the front-end and back-end.
■ A brief project description and feature list.
■ Any assumptions, challenges, or limitations faced during development.
2. Code Walkthrough Video:
○ Create a screen recording that walks through the following:
■ Code Structure: Explain the folder and file structure of both the
front-end and back-end.
■ Back-End Explanation: Walk through the Express server setup, the
API routes, and database interactions.
■ Front-End Explanation: Demonstrate the React components, explain
state management, and show how data is fetched from the API and
rendered.
■ API Integration: Show how the front-end communicates with the
back-end via API calls (GET, POST, PUT, DELETE).
■ Deployment: Walk through deploying both the front-end and
back-end, showing the live version of the application.
3. Deployment:
○ React Front-End: Deploy the React application using a platform like Vercel,
Netlify, or GitHub Pages.
○ Node.js Back-End: Deploy the Node.js server using platforms like Heroku,
Railway, or Render.
○ MongoDB Database: Use MongoDB Atlas or another cloud database service
to host the database and connect it to the back-end.
○ Provide links to the deployed live application:
■ Front-End URL (e.g., https://your-app-name.vercel.app)
■ Back-End URL (e.g., https://your-api.herokuapp.com)
4. Live Demo:
○ Ensure both the front-end and back-end are deployed and fully operational.
Provide links to the live application and ensure functionality like task
management works properly in a browser.
Submission Instructions:
○ Submit your completed assignment via the Google Form here (make sure to
follow the naming conventions for the GitHub repository and video).
○ Include the following links in the form:
■ GitHub Repository link.
■ Code Walkthrough Video link.
■ Front-End Deployment URL.
■ Back-End Deployment URL.
Evaluation Criteria:
● Code Quality: Clean, modular, and well-structured code following best practices.
● Functionality: The application should meet all core requirements (add, edit, delete,
and view tasks).
● Error Handling: Proper validation and error handling implemented both on the
front-end and back-end.
● User Interface: A responsive, intuitive, and visually appealing UI.
● Documentation: A well-written README with clear setup instructions and
explanations.
● Deployment: Successful deployment with both front-end and back-end accessible
online.