-
Developed using React.js along with Redux for state management.
-
Utilized React Router DOM for client-side routing.
-
Implemented features such as user authentication, note creation, and note management.
-
Designed a user-friendly interface with easy navigation and mobile responsiveness.
-
Built on Node.js with Express.js framework to handle server-side logic and routing.
-
Employed MongoDB as the database using Mongoose for object modeling.
-
Implemented user authentication using JSON Web Tokens (JWT) for secure access.
-
Managed user roles (Employees, Managers, Admins) and their respective permissions.
-
Provided APIs for CRUD operations on notes, including assignment to specific users and status tracking.
-
Frontend:
- React
- Redux
- React Router DOM
- FontAwesome
- JWT Decode
- React Spinners
- Testing Library
-
Backend:
- Node.js
- Express
- MongoDB
- Mongoose
- bcrypt
- JSON Web Tokens (JWT)
- Express Rate Limit
- dotenv
Clone the repository for both client and server.
- Navigate to the
client
folder. - Install dependencies using
npm install
. - Start the client using
npm start
. - The client will run on
http://localhost:3000
by default.
-
Navigate to the
server
folder. -
Install dependencies using
npm install
. -
Create a
.env
file in the root directory of the server folder. -
Inside the
.env
file, define the following environmental variables:DATABASE_URI=your_mongodb_connection_string ACCESS_TOKEN_SECRET=your_access_token_secret REFRESH_TOKEN_SECRET=your_refresh_token_secret
Replace
your_mongodb_connection_string
with your MongoDB connection string andyour_access_token_secret
andyour_refresh_token_secret
with 64-bit hex strings.To generate a 64-bit hex string, follow these steps:
-
Open your terminal or command prompt.
-
Enter the Node
-
In CLI type,
// Command to generate Access Token and Refresh Token require('crypto').randomBytes(64).toString('hex')
in a Node.js CLI.
-
-
Start the server using
npm start
for production ornpm run dev
for development. -
The server will run on
http://localhost:3500
.
- Sticky note system replaced with MERN stack notes application.
- Public-facing page with basic contact information added.
- Employee login functionality implemented.
- Welcome page displayed after login.
- Navigation made easy for users.
- Current user and assigned role displayed.
- Logout option provided.
- Users required to login at least once per week.
- Option to remove employee access immediately if needed.
- Notes can be assigned to specific employees.
- Notes contain ticket number, title, body, creation & update dates, and status.
- Users categorized as Employees, Managers, or Admins.
- Only Managers or Admins can delete notes.
- Anyone can create a note during check-in.
- Employees can only view and edit their assigned notes.
- Managers and Admins have full access to notes.
- User Settings accessible only to Managers and Admins.
- Creation of new users restricted to Managers and Admins.
- Desktop mode prioritized but mobile-friendly design implemented.