The Task Management Application is a robust tool designed to help users efficiently manage their tasks. It features task creation, updates, deletions, and sorting based on various criteria. The application includes authentication and authorization mechanisms to ensure secure access and user management.
- Task Management: Create, update, and delete tasks.
- Task Sorting: Sort tasks by priority, due date, status, and creation date.
- User Profile: Add and manage profile pictures.
- Authentication & Authorization: Secure user authentication and authorization.
- Access Control: Prevent unauthorized access to pages.
- User Sessions: Signup, signin, and logout functionalities with persistent sessions for valid tokens.
- Backend: Node.js, Express.js
- Frontend: React.js, Material-UI
- Clone the repository:
git clone https://github.com/assassinscreed2/taskmanagement.git
- Navigate to the backend directory:
cd taskmanagement/backend
- Install dependencies:
npm install
- Navigate to the frontend directory:
cd ../frontend
- Install dependencies:
npm install
- Ensure all required environment variables are configured (see Configuration).
- Start the backend server:
npm start
- Ensure all required environment variables are configured (see Configuration).
- Start the frontend development server:
npm start
Ensure dotenv
is installed and create a .env
file in the backend directory with the following variables:
PORT=<PORT>
CONNECTION_URL=<MONGODB CONNECTION URL>
SECRET_KEY=<SECRET KEY FOR JWT>
IMAGEKIT_PUBLIC_KEY=<IMAGEKIT PUBLIC KEY>
IMAGEKIT_PRIVATE_KEY="<IMAGEKIT PRIVATE KEY>
IMAGEKIT_URL_ENDPOINT=<IMAGEKIT URL ENDPOINT>
DEFAULT_PROFILE_IMAGE="<IMAGEKIT UTL ENDPOINT>/default-image.jpg"
Create a .env
file in the frontend
directory with the following content:
REACT_APP_SERVER="http://localhost:<BACKEND SERVER PORT>"
The project root directory contains two main folders:
- backend: Contains the Node.js backend code.
- frontend: Contains the React.js frontend code.