Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ayushivashisth/kryzen-auth-pdf-form
Welcome to the Kryzen! We're excited to invite you on board. This document outlines the requirements for developing a Node.js and React.js application. The primary features include user authentication, a simple data collection form, and displaying and downloading the collected data in PDF format.
https://github.com/ayushivashisth/kryzen-auth-pdf-form
context-api expressjs mongodb mongoose nodejs npm-module npm-package react rendering tailwindcss vercel
Last synced: 1 day ago
JSON representation
Welcome to the Kryzen! We're excited to invite you on board. This document outlines the requirements for developing a Node.js and React.js application. The primary features include user authentication, a simple data collection form, and displaying and downloading the collected data in PDF format.
- Host: GitHub
- URL: https://github.com/ayushivashisth/kryzen-auth-pdf-form
- Owner: AyushiVashisth
- Created: 2024-01-08T06:16:16.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2024-01-10T12:13:56.000Z (about 1 year ago)
- Last Synced: 2024-01-10T14:22:55.552Z (about 1 year ago)
- Topics: context-api, expressjs, mongodb, mongoose, nodejs, npm-module, npm-package, react, rendering, tailwindcss, vercel
- Language: JavaScript
- Homepage: https://frontend-ayushivashisth.vercel.app/
- Size: 20.7 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
πΏ kryzen-auth-pdf-form WebsiteπΏ
Welcome to the Kryzen! We're excited to invite you on board. This document outlines the requirements for developing a Node.js and React.js application. The primary features include user authentication, a simple
data collection form, and displaying and downloading the collected data in PDF format. Based on this project we will evaluate your skills like cleanliness of code. Breaking problems down into small steps. UI and
UX are not important, goal is to understand your analytical thinking and problem-solving [Assignment_0-1 (8).pdf](https://github.com/AyushiVashisth/kryzen-auth-pdf-form/files/13887387/Masai.Project.Overview.pdf)### Frontend Deployed URL π [Click here](https://frontend-ayushivashisth.vercel.app/)
### Backend Respositry URL π [Click here](https://kryzen-api.onrender.com)
Technologies Used
Frontend
![]()
![]()
Backend
![]()
![]()
Tools
![]()
![]()
![]()
Deployment
![]()
![]()
Features
1. **User Registration:**
- Allow users to register a new account with a unique username and password.
- Ensure that the registration process securely stores user credentials.2. **User Login:**
- Implement a secure login mechanism where users can authenticate with their registered credentials.
- Utilize JSON Web Tokens (JWT) for secure authentication.3. **Access Control:**
- Define specific pages or routes that should only be accessible when the user is authenticated.
- Implement middleware on the server to check the validity of JWT tokens before granting access.**Implementation Steps:**
1. **Backend Setup:**
- Create user schema in MongoDB to store user data, including username and hashed password.
- Set up routes for user registration and login using Express.2. **User Registration:**
- Implement a registration form on the frontend using React.
- Validate and sanitize user input on the client and server sides.
- Hash the user's password before storing it in the database.3. **User Login:**
- Develop a login form on the frontend.
- Validate user input and authenticate the user by comparing the hashed password.
- Generate a JWT upon successful login and send it to the client.4. **Access Control:**
- Create a middleware function on the server to verify the JWT in incoming requests.
- Use the middleware to protect routes that require authentication.**Considerations:**
- **Token Expiry:** Set a reasonable expiry time for JWT tokens to enhance security.
- **Password Policy:** Enforce strong password policies during registration.- **Secure Transmission:** Ensure that user credentials and JWTs are transmitted securely over HTTPS.
- **Error Handling:** Implement error handling for various scenarios (e.g., incorrect password, user not found).
By successfully implementing the User Authentication feature, you establish a foundation for securing user data and controlling access to different application parts.
Getting Started
1. Clone the repository to your local machine.
2. Set up the backend API using Express and Mongoose (provide instructions if necessary).
3. Navigate to the project directory.
4. Run `npm install` to install the required dependencies.
5. Run `npm start` to start the development server.This is an individual project that I developed as a solo full-stack web developer within 5 days.
Contribution Guidelines
We welcome contributions to the kryzen-auth-pdf-form project. If you have ideas for new features or find any bugs, please open an issue in the repository. Pull requests are also encouraged.
Show Your Support
If you find this project interesting or valuable, please consider giving it a βοΈ.
π Happy Exploring! π