Follow these steps to set up and run the project locally.
- Node.js installed (https://nodejs.org/)
- Git installed (https://git-scm.com/)
-
Clone the Repository
git clone <repository-url> <folder-name> cd <folder-name>
-
Run npm install script
npm install
-
Run the project in dev mode
npm run dev
Please note that MongoDB is hosted on Atlas and that connection string in .env is hardcoded to this DB. If you wish to use your local DB please replace DATABASE_URL in /apps/api/.env with your local MongoDB connection string
Objective: Create a basic feedback collection form where users can submit feedback. The form will be connected to a backend API that stores feedback entries.
Requirements:
- Use of Typescript is mandatory both on the Backend and the Frontend
- Integrate the Figma Design
-
Technologies: Vue.js, Vite, Tailwind CSS.
-
Components:
- A modal with a form to submit feedback with fields:
Name,Email,Feedback Type(Bug/Suggestion), andMessage. - A page to display a list of submitted feedback entries.
- (Bonus) Filter options to filter feedback by type.
- (Bonus) Sorting options to sort feedback by date or name.
- A modal with a form to submit feedback with fields:
-
Features:
- Validate form inputs.
- Submit the form data to the backend API.
- Fetch and display a list of feedback entries from the backend.
- (Bonus) Implement filtering and sorting of feedback entries.
- (Bonus) Display feedback entries with pagination.
- Technologies: Node.js, TypeScript, MongoDB.
- API Endpoints:
POST /api/feedback- to submit new feedback.GET /api/feedback- to retrieve feedback entries with (Bonus) pagination, filtering, and sorting.
- Features:
- Store feedback entries in MongoDB.
- Implement basic validation and error handling on the server side.
- (Bonus) Support pagination, filtering, and sorting in the retrieval of feedback entries.
Provide clear instructions on how to set up and run the project locally.
Submit your solution via a GitHub repository link. The repository should include:
- The complete source code for the frontend and backend.
- A README file with setup instructions.
- Code Quality: Clean, readable, and well-structured code following best practices.
- Functionality: Correct implementation of the required features.
- Design: A user-friendly and responsive form.
- Documentation: Clear and comprehensive setup and usage instructions.