OpenMic Ai AI Product Engineer (Full Stack Engineer

Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

OpenMic.

ai AI Product
Engineer (Full Stack
Engineering)Assignment

Objective and Goal


Openmic.ai is a fully automated solution for building and
Deploying your own end to end voice agents for tasks like Sales
Automation / Cold Calling running customer support operations
most of the time without human aid, we believe what we are
building matters and would change the way people do hard sales,
as a fullstack Engineer your role would be a pivotal one
allowing us to move fast and break things as much as possible to
deliver a rich experience to the end user

Therefore you are first Encouraged to go check out and get a


idea of what Openmic.ai actually is please record a loom of
what the product feels like what is good what is bad and what
are your thoughts as a Full stack Engineer

Overview
Develop a web application that allows users to collaboratively
create, read, update, and delete notes in real-time. Each note
should support rich text formatting and the ability to attach
files. The application should include user authentication, and

OpenMic.ai AI Product Engineer (Full Stack Engineering)Assignment 1


users should only have access to notes they have created or been
given access to by other users.

Requirements
1. Front-end (React.js):

Implement a modern, responsive UI with React.js.

Utilize Redux or Context API for state management across


the application.

Integrate a rich text editor for note content (e.g., Quill


or Draft.js).

Implement file upload capability within notes (consider


using Amazon S3 or a similar service for storage).

Use React Router for navigation between different parts of


the application (e.g., note list view, note edit view,
login/signup pages).

Implement private routes that require authentication.

2. Back-end (Node.js, Express.js):

Secure RESTful API endpoints using JWT (JSON Web Tokens)


for authentication and authorization.

Implement WebSocket for real-time collaboration on notes.

Design the API to handle CRUD operations for notes and


user accounts.

Connect to MongoDB and use Mongoose for schema


definitions, including user and note models. Ensure
relationships between users and notes are properly
managed.

Implement error handling and validate request data to


ensure API reliability and security.

3. Database (MongoDB):

OpenMic.ai AI Product Engineer (Full Stack Engineering)Assignment 2


Design schemas for users and notes. Notes should reference
their creators and have an array of user IDs representing
shared users.

Implement database indices to optimize query performance,


especially for note retrieval and user lookup.

4. Additional Features:

Add role-based access control (RBAC) for notes (e.g.,


owner, editor, viewer).

Implement a feature to invite users to collaborate on a


note via email.

Include version control for notes to view and revert


changes.

Deploy the application using a cloud service (e.g.,


Heroku, AWS, or DigitalOcean) and include a Dockerfile for
containerization.

5. Testing:

Write unit tests for both front-end and back-end


functionality.

Implement integration tests for API endpoints.

Deliverables
Complete source code for the front-end and back-end,
including any deployment and Docker configuration files.

A README file with comprehensive setup instructions, API


documentation, and an overview of the application features
and technology stack.

A suite of tests demonstrating the application’s reliability


and your testing approach.

Evaluation Criteria

OpenMic.ai AI Product Engineer (Full Stack Engineering)Assignment 3


Advanced Feature Implementation: Successfully integrating
real-time collaboration, file uploads, and rich text editing.

Security: Proper implementation of authentication,


authorization, and secure handling of user data and file
uploads.

Code Quality and Organization: Clean, well-commented code


following best practices and patterns for the MERN stack.

Deployment: A live version of the application is available


with a focus on performance optimizations and security best
practices.

Testing: Demonstrating thorough testing practices including


unit and integration tests.

Deadline:

Please submit your task within 3 days of receiving this.

Feel free to reach out if you have any questions or need


clarification regarding the task to

[email protected]

Resources
→ https://quilljs.com

→ https://draftjs.org/

→ https://ui.shadcn.com/

→ https://chakra-ui.com/

OpenMic.ai AI Product Engineer (Full Stack Engineering)Assignment 4

You might also like