IMPORTANT: You must build your assignment on top of this existing codebase. Do not create a new project from scratch.
The application should have the following features:
- User authentication: The application should allow users to create an account and log in.
- Blog creation: Users should be able to write simple blog posts consisting of just plain text.
- Real-time notifications: Whenever a new blog is published by any user, all the users on the platform should be notified in real-time (without requiring a page reload) in the application itself.
Required Technical Stack:
- Vue 3 (mandatory)
- NestJS (mandatory) - You must use NestJS for the backend. Plain Node.js is not acceptable.
- TypeScript (mandatory) - All code must be written in TypeScript. JavaScript is not allowed.
- GraphQL (mandatory)
- SQL database (required) - Please use a SQL database (e.g., PostgreSQL, MySQL, SQLite) for data persistence. This helps standardize submissions and provides more content for us to follow-up on during the review process.
- This project has been set up with Vue3 (Not Nuxt 3) and Nest.js with Graphql. It has a hello world graphql and REST endpoint.
- You must extend this existing codebase - Do not create a separate project or use a different setup.
- TypeScript is mandatory - All backend and frontend code must be written in TypeScript.
- NestJS is mandatory - The backend must be built using NestJS framework.
- For the purposes of this project, please avoid Firebase and other Backend-as-a-Service tools because they abstract away too many implementation details for us to properly grade submissions.
- Video demonstration: Please submit a video demonstrating the app working. The video should show all the required features in action (user authentication, blog creation, and real-time notifications).