0% found this document useful (0 votes)
9 views4 pages

Mini Assignment_ Fast Secure Task Tracker with MongoDB (2)

Cc

Uploaded by

Sandesh
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
0% found this document useful (0 votes)
9 views4 pages

Mini Assignment_ Fast Secure Task Tracker with MongoDB (2)

Cc

Uploaded by

Sandesh
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 4

Mini Assignment: Fast Secure Task

Tracker with MongoDB


Objective:
Build a secure task tracker web application with user authentication (login), user registration
(signup), and basic task management features using Vue.js (frontend) and Nest.js
(backend) with MongoDB Atlas for data storage. Deploy the frontend on Netlify and the
backend using an alternative to Heroku, such as Railway.app or Render.com, without
requiring a credit card.

Frontend (Vue.js)
Create Vue Components:

1. Login.vue
○ A form for user login with fields for username and password.
2. Signup.vue
○ A form for user registration with fields for username, password, and password
confirmation.
3. TaskList.vue
○ Displays a list of tasks for authenticated users.
4. TaskForm.vue
○ A form allowing authenticated users to add new tasks.

Implement Authentication Workflow:

● Vue Router
Set up routes for login, signup, and task list pages.
● Vuex Store
Manage the authentication state using Vuex (store logged-in user details).
● Axios
Use Axios for login and signup actions to communicate with the backend API.

Basic Task Management:


● TaskList.vue
Fetch and display tasks for authenticated users from MongoDB.
● TaskForm.vue
Allow users to add new tasks to MongoDB.

Backend (Nest.js with MongoDB)


Set Up Nest.js Server:

1. Initialize a basic Nest.js server.


2. Set up a connection to MongoDB Atlas (a free cloud-based MongoDB service).

Implement Authentication Endpoints:

1. POST /login: Validate user credentials, return a JWT token on success.


2. POST /signup: Register new users and securely hash passwords before storing
them in MongoDB.

Task Management Endpoints:

1. GET /tasks: Fetch tasks for authenticated users from MongoDB.


2. POST /tasks: Add new tasks to MongoDB for authenticated users.

Deployment
Backend Deployment to Railway.app or Render.com:

1. Push your Nest.js project to a GitHub repository.


2. Create an account with Railway.app or Render.com (no credit card required).
3. Set up a new project linked to your GitHub repository.
4. Deploy the Nest.js backend to Railway.app or Render.com.

Frontend Deployment to Netlify:

1. Push your Vue.js project to a GitHub repository.


2. Sign up for a free Netlify account (no credit card required).
3. Set up a new Netlify project linked to your Vue.js repository.
4. Configure the deployment settings and deploy.
Security Measures:
1. HTTPS
Ensure secure communication between client and server.
2. CORS
Implement Cross-Origin Resource Sharing to allow requests from trusted domains.
3. JWT Authentication
Secure user authentication with JSON Web Tokens.

Code Quality and Documentation:


● Write clean and well-structured code with proper comments.
● Document steps for running both the frontend (Vue.js) and backend (Nest.js) locally.

Submission Guidelines:
1. Submit your codebase with instructions for running both the frontend and backend.
2. Include the following URLs:
○ GitHub repository for the Vue.js frontend.
○ GitHub repository for the Nest.js backend.
○ Deployed Netlify URL for the frontend.
○ Deployed Railway.app or Render.com URL for the backend.
3. Submit your assignment through the Google Form.

Submit your assignment through the Google Form.


Google form: https://forms.gle/G6NvdPWC7GTMmGp2A

Evaluation Criteria:
1. Functionality:
○ User authentication (login and signup) with JWT.
○ Basic task management (CRUD operations).
○ Proper communication with MongoDB Atlas.
2. Code Quality:
○ Clean, modular, and well-documented code.
3. Security:
○ Implementation of HTTPS, CORS, and secure password hashing.
4. Documentation:
○ Clear instructions for running and deploying the project.
○ GitHub repository URLs for both frontend and backend.
○ URLs for the deployed frontend (Netlify) and backend (Railway.app or
Render.com).

Additional Notes:
● Timeframe:
This is a 2-day assignment.
● MongoDB Atlas:
A free, cloud-based MongoDB service is used. Adjustments can be made based on
preferences or requirements.

© 2024, Salesine Technologies Pvt. Ltd. All Rights Reserved. | CIN: U72900BR2022PTC060336

You might also like