Welcome to the technical test for the Orange IEEE x Orange Summer Internship 2024! This test is designed to assess your proficiency in building a full-stack web application using the MERN stack (MongoDB, Express.js, React.js, Node.js). You have 4 hours to complete the tasks outlined below.
- Node.js and npm installed on your development machine.
- Familiarity with MongoDB, Express.js, React.js, and Node.js is essential.
- Basic understanding of RESTful API design and CRUD operations.
- Ability to implement basic authentication and authorization mechanisms is a plus.
-
Backend Development (Node.js & Express.js)
- Set up a Node.js server using Express.js.
- Implement a MongoDB database connection.
- Design and implement RESTful API endpoints for the following operations:
- Create, Read, Update, and Delete (CRUD) operations for a resource (e.g., 'tasks', 'notes', 'users', etc.).
- Ensure appropriate validation and error handling for API requests.
- Folder Structure: Ensure backend code is organized in a
backend
folder.
-
Frontend Development (React.js)
- Create a React.js application.
- Implement components for:
- Listing all items from the backend API.
- Adding a new item.
- Editing an existing item.
- Deleting an item.
- Ensure the UI is responsive and user-friendly.
- Folder Structure: Ensure frontend code is organized separately from backend in a
frontend
folder.
-
Integration
- Integrate the frontend and backend to create a seamless MERN stack application.
- Test the integration thoroughly to ensure data flow and functionality.
-
Authentication (Bonus Task)
- Implement basic authentication using JWT (JSON Web Tokens).
- Secure the API endpoints to require authentication for certain operations (e.g., create, update, delete).
- Fork this repository.
- Clone your forked repository to your local machine.
- Create a new branch named
firstname-lastname
. - Complete the tasks within 3 hours.
- Commit your changes frequently with clear commit messages.
- .gitignore: Include a
.gitignore
file in thebackend
folder to exclude unnecessary files from version control. - .env file: Add a
.env
file in thebackend
folder with the MongoDB connection URL (MONGODB_URI
).
- Functionality: Does the application meet the requirements specified?
- Code Quality: Is the code well-structured, modular, and easy to understand?
- UI/UX: Is the user interface intuitive and responsive?
- Error Handling: Does the application handle errors gracefully?
- Bonus Points: For implementing authentication and authorization.
- Feel free to use any additional libraries or frameworks you deem necessary.
- Use best practices for security and performance.
- Academic Integrity: Cheating or obtaining information from sources like chatbots (e.g., ChatGPT) is strictly prohibited and will result in disqualification.
- MongoDB Atlas for cloud database hosting (optional).
- React.js documentation: https://reactjs.org/
- Express.js documentation: https://expressjs.com/
- MongoDB documentation: https://docs.mongodb.com/
You have 3 hours to complete the test. Please manage your time effectively to ensure you can finish all required tasks.