Employee360 Task Manager is a full-stack task management system designed for teams to manage tasks, milestones, reports, file sharing, and communication efficiently. It includes role-based access for personnel, team leaders, and admins.
Before installing, make sure you have:
- Node.js (v14 or higher)
- MongoDB (local or MongoDB Atlas)
- Git (to clone the repository)
First, download the project files from GitHub:
git clone https://github.com/onuralcaa/Employee360_Task_Manager
cd Employee360_Task_Manager-
Move into the backend folder:
cd backend -
Install all necessary packages:
npm install
-
Configure Environment Variables:
- Create a
.envfile inside thebackendfolder and add the following:MONGO_URI=your_mongodb_connection_string JWT_SECRET=your_secret_key FRONTEND_URL=http://localhost:3000
- Create a
-
Start the Backend Server:
node server.js
- If everything is correct, the backend should start on
http://localhost:5000. - You should see:
✅ Server 5000 portunda çalışıyor!
- If everything is correct, the backend should start on
-
Move into the frontend folder:
cd ../frontend -
Install all necessary packages:
npm install
-
Start the Frontend Server:
npm start
- The frontend should now be running on
http://localhost:3000. - Open the URL in your browser and test the app.
- The frontend should now be running on
To start both backend and frontend at the same time:
-
Install
concurrentlyglobally:npm install -g concurrently
-
Modify
frontend/package.json:"scripts": { "start": "concurrently \"cd ../backend && node server.js\" \"react-scripts start\"" }
-
Start the project:
npm start
- User Management: Role-based access for personnel, team leaders, and admins.
- Task Management: Create, assign, and update tasks.
- Milestone Management: Assign, update, and verify project milestones.
- Reporting: Generate and manage team reports.
- File Sharing: Upload, download, and share files.
- Messaging: Communicate between users.
- Entry Tracking: Track personnel entry and exit logs.
- Personnel:
- View assigned tasks.
- Send messages to team leaders and admins.
- Receive files.
- Team Leader:
- Assign tasks to team members.
- Create and submit reports.
- Send and receive files.
- Communicate with team members and admins.
- Admin:
- Manage all tasks, milestones, and reports.
- Assign milestones and verify/reject them.
- Send, receive, and delete files.
- Manage user statuses (active/inactive).
- Models: Defines the database schema for tasks, milestones, users, and reports.
- Controllers: Contains the business logic for handling API requests.
- Routes: Defines the API endpoints for tasks, milestones, users, and reports.
- Utils: Utility functions like email sending and authentication middleware.
- Components: Reusable React components for tasks, milestones, reports, and user management.
- Pages: Main pages for admin, team leader, and personnel views.
- API: Functions to interact with the backend API.
- Styles: CSS files for styling the application.
- POST
/api/users/login: Login a user. - GET
/api/users: Get all users (admin only). - PUT
/api/users/:id: Update user details.
- GET
/api/tasks: Get all tasks (role-based filtering). - POST
/api/tasks: Create a new task (team leader only). - PUT
/api/tasks/:id/status: Update task status.
- GET
/api/milestones: Get all milestones (admin only). - POST
/api/milestones: Create a new milestone (admin only). - PUT
/api/milestones/:id/status: Update milestone status.
- GET
/api/reports: Get all reports (admin only). - POST
/api/reports: Create a new report (team leader only). - PUT
/api/reports/:id/submit: Submit a report for review.
- Frontend: React.js, Axios, React Router
- Backend: Node.js, Express.js, MongoDB, Mongoose
- Authentication: JWT (JSON Web Tokens)
- Styling: CSS, Bootstrap
- Email Notifications: Nodemailer
--