One-time passwords are a great way to implement two-factor authentication, protect user accounts from unauthorized access, and streamline the user login process.
In this project, you'll develop an OTP validation system from scratch. The system will include a frontend that matches the provided screenshots and an API to manage OTP operations. On the backend, you’ll handle OTP generation, storage, and validation logic.
The frontend should allow users to enter their email address, request an OTP, enter it, and receive feedback based on its validity. It should be visually appealing, user-friendly, and adaptable to any device—desktop, tablet, or mobile.
The backend should create OTPs, manage expiration and invalidation, and check the validity of user input. You should also consider how to keep the database clean and performant.
This project doesn't include starter code, but we have provided mockups from the Product Team that you should follow when designing the frontend.
Since you are building this project from scratch, you may use any tools you wish in order to build the frontend and backend. We recommend using the PERN stack or MERN stack, and using a build tool like Vite to stage the frontend locally.
This project and many others like it are available with a Curricular account. Get started today.
Already have an account? Sign In
Includes
This project and many others like it are available with a Curricular account. Get started today.
Already have an account? Sign In
Includes
Why should I build this project instead of one from scratch?
In a professional context, you're rarely starting from scratch. Curricular Projects are designed to give you a constrained real world problem so you can focus on practicing the essential skills you'll use as a professional developer, and to surface specific areas to continue studying.
Can I get help if I'm stuck on a project?
Our projects are designed to be a real world assessment of your skills, like the take home assignment during a job interview. Getting yourself unstuck is part of the skills measured. As a result, we offer very little help and direction.
However, if you encounter issues with the setup, or if you find something isn't working right that should be working, you can contact us at support@curricular.dev and we'll help you out.
Do you provide official solutions to projects?
We do not provide official solutions to projects. There are many ways to solve each of our projects. Coding is a journey, so our goal isn't for you to get the "right answer." Instead, our projects are about you flexing your skills to arrive at a solution, practicing talking about your code, and giving you helpful feedback on ways to improve.
Can I get feedback on my work?
Yes! Subscribers to Curricular Pro get their project solutions graded, with personalized feedback.
Where can I ask a question that isn't answered here?
Email us at support@curricular.dev or chat with us.