Take-home Assignment: Full-stack/Frontend Engineer Intern
Task Overview:
You are required to build a "Mentorship Matching Platform" where users can create an
account, set up a profile as a mentor or mentee, specify their skills or areas of interest, and
find matches with others for mentorship opportunities.
Requirements:
User Interface (UI) Design:
● Design: Create a clean, intuitive, and responsive interface using vanilla JS, HTML & CSS
(Do not use any external library and framework for frontend)
● Pages to Include:
○ User Registration and Login: A page for users to sign up, log in, and log out
securely.
○ Profile Setup: A page where users can create and edit their profiles, specifying
their role (mentor or mentee), skills, interests, and a brief bio.
○ User Discovery: A page where users can browse through other users' profiles,
with filters for role, skills, interests, etc.
Functionality:
● User Authentication: Implement secure user registration, login, and logout
functionalities with input validation and error handling.
● Profile Management: Allow users to create, edit, and delete their profiles. Ensure that
profile information is accurately displayed and updated.
● Connection Requests: Enable users to send and receive mentorship requests, accept
or decline requests, and manage ongoing mentorship connections.
Database Integration:
● Setup: Use a relational database to store user information, profiles, and mentorship
connections (e.g., PostgreSQL, MySQL).
● Relationships: Define clear relationships between users, their profiles, and mentorship
requests.
● Data Security: Ensure sensitive information is securely stored and handled, following
best practices for data protection.
Edge Case Handling:
● Input Validation: Validate all user inputs to prevent empty fields, invalid data formats,
and security vulnerabilities like SQL injection.
● Duplicate Prevention: Prevent users from creating duplicate profiles or sending
multiple mentorship requests to the same user..
Deployment:
● Hosting: Deploy the application on a free hosting platform (e.g., Heroku, Vercel,
Netlify).
● Accessibility: Ensure the deployed application is fully functional, responsive, and
accessible via a public URL.
● Environment Variables: Securely manage any API keys or environment variables
needed for deployment.
Deliverables:
1. GitHub Repository: A public repository containing all source code, organized in a
clean and logical structure.
2. Deployed Application URL: A live link to the deployed application for testing and
review.
3. README File: Include setup instructions, the deployed URL, technologies used, and any
necessary configurations.
4. Documentation: A brief document (approximately one page) explaining your
development approach, challenges faced, and solutions implemented.
Note for Frontend (FE) Intern Applicants: If you're applying specifically for the Frontend Intern
role (and not the Fullstack role), you may mock the required APIs instead of implementing
them from scratch. Ensure your mock APIs effectively simulate the expected responses and
integrate seamlessly with your frontend implementation.
For Fullstack Intern applicants, please implement both the frontend and backend APIs as
specified in the assignment.
Evaluation Criteria:
● UI/UX Design: Clarity, aesthetics, and user-friendliness of the interface.
● Feature Implementation: Complete and correct functionality as per the requirements.
● Database Management: Efficient database design and interaction, ensuring data
integrity and security.
● Robustness: Effective handling of edge cases, errors, and invalid inputs without
compromising the application's stability.
● Code Quality: Cleanliness of code, use of best practices, commenting, and overall
organization.
● Innovation: Any additional features or creative solutions beyond the basic
requirements.
Submission Instructions:
Please submit the following via the Google form link shared in the email:
● GitHub Repository Link
● Deployed Application URL
● Documentation File
● Loom Video walking us through your final submission:
○ Codebase Structure:
Frontend: Explain component hierarchy, state management.
Backend: Key routes, middleware, and database interactions.
○ Demo of Working Features :
Show critical user flows (e.g., form submission, API calls).
○ Key Technical Decisions:
Why did you choose specific libraries/patterns?
Note: AI generated/supported assignments will not be considered
We look forward to reviewing your application. If you have any questions or need
clarifications, feel free to reach out. Good Luck!