Skip to content

A Payroll Management System developed using React, Flask, and MySQL, designed to streamline employee payroll processes. The system features a user-friendly interface for managing employee records, salary calculations, and tax deductions, with real-time data updates and secure storage.

Notifications You must be signed in to change notification settings

snigdhasv/Payroll-Management-System

Repository files navigation

Payroll Management System

📜 Project Description

The Payroll Management System (PMS) is a robust solution designed to automate and streamline payroll processes, including:

  • Employee leave tracking
  • Salary computation
  • Tax management
  • Payslip generation

The system leverages modern technologies to ensure efficient payroll management while maintaining compliance with tax regulations and labor laws. Built with React.js for the frontend, Flask for the backend, and MySQL for the database, this project is designed to deliver a seamless user experience.


✨ Key Features

👥 User Management

  • Multi-role Authentication: Separate portals for 🧑‍💼 employees and 🧑‍💻 administrators.
  • Secure Access: Password hashing and session management.
  • Profile Management: Allows users to update and manage their profiles.

🛠️ Admin Features

  • Dashboard:
    • Visualize payroll data with graphs and analytics.
  • Employee Management:
    • Add, update, and delete employee records.
    • Maintain a history of employment changes.
  • Payroll Calculation:
    • Automated computation of salaries, bonuses, and deductions.
    • Real-time updates to the payroll database.
  • Tax Management:
    • Compute tax deductions based on customizable conditions.
  • Leave Management:
    • Track and manage employee leave requests.
  • Payslip Generation:
    • Generate payslips in PDF format for employees.

👩‍💻 Employee Features

  • Dashboard:
    • View payroll details and updates.
  • Profile Management:
    • Edit and manage personal profile information.
  • Payslip Download:
    • Download 🧾 payslips once generated by the admin.
  • Leave Application:
    • Apply for leaves directly through the portal.

🛠️ Technologies Used

Frontend:

  • React.js (with ⚡ Vite)
  • Axios
  • CSS

Backend:

  • Flask
  • SQLAlchemy
  • Flask-CORS

Database:

  • MySQL

📋 Prerequisites

Backend:

  • Python 3.8+
  • Install required dependencies:
    pip install flask sqlalchemy pymysql flask-cors mysql-connector-python reportlab

Frontend:

  • Node.js 14+ and npm or yarn

Database:

  • MySQL server installed and configured.

🛠️ Setup Instructions

1️⃣ Clone the Repository

git clone <repository_url>

2️⃣ Backend Setup

  1. Navigate to the backend directory:
    cd backend
  2. Configure the MySQL database in config.py:
    SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://<username>:<password>@localhost/payroll_management'
    Replace <username>, <password>, and payroll_management with your database credentials and database name.
  3. Start the Flask server:
    flask run

3️⃣ Frontend Setup

  1. Navigate to the frontend directory:
    cd frontend
  2. Install dependencies:
    npm install
  3. Start the React development server:
    npm start

🗂️ Project Structure

💻 Backend:

  • app.py: Main Flask application.
  • routes/: Contains API route definitions.
  • models/: SQLAlchemy models for the database.
  • utils/: Utility functions and services.

🧑‍💻 Frontend:

  • src/pages: Components for various application views.
    • Admin/: Pages for the admin portal.
    • Employee/: Pages for the employee portal.
  • src/styles: CSS files for styling.

🔗 API Endpoints

Authentication:

  • Login: /api/login (POST)
  • Logout: /api/logout (POST)

Employee Endpoints:

  • Dashboard Data: /api/employee/dashboard (GET)
  • Profile Management:
    • Fetch Profile: /api/employee/profile (GET)
    • Update Profile: /api/employee/profile (PUT)
  • Leave Management:
    • Apply for Leave: /api/employee/apply_leave (POST)
    • View Leave History: /api/employee/leave_history (GET)

Admin Endpoints:

  • Dashboard Data: /api/admin/dashboard (GET)
  • Employee Management:
    • Fetch Employees: /api/admin/employees (GET)
    • Add Employee: /api/employees (POST)
    • Delete Employee: /api/employees/<employee_id> (DELETE)
  • Payroll Management:
    • Fetch Payroll Data: /api/payroll (GET)
    • Generate Payslip: /api/payroll/generate_payslip/<payroll_id> (POST)
    • Download Payslip: /api/payslip/download/<payslip_id> (GET)
  • Leave Management:
    • Fetch Leave Requests: /api/leaves (GET)
    • Update Leave Status: /api/leaves/update_status (POST)

🏷️ License

This project is licensed under the MIT License.


🤝 Contributions

Contributions are welcome! Follow these steps to contribute:

  1. Fork the repository.
  2. Create a new branch for your feature or bug fix.
  3. Commit your changes and push the branch.
  4. Submit a pull request.

Thank you for exploring the Payroll Management System! 🎉 Feel free to reach out with any questions or feedback.

About

A Payroll Management System developed using React, Flask, and MySQL, designed to streamline employee payroll processes. The system features a user-friendly interface for managing employee records, salary calculations, and tax deductions, with real-time data updates and secure storage.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published