The Refund Management System is a web-based application designed to streamline the process of submitting, reviewing, and approving refund requests within an organization. Employees can submit refund requests, managers can review and approve/reject them, and account managers can provide final approvals.
- User Authentication: Secure login using JWT authentication.
- Role-Based Access: Supports Employees, Managers, Account Managers, and Admins.
- Request Submission: Employees can submit refund requests with descriptions, attachments, and requested amounts.
- Approval Workflow:
- Managers approve requests before forwarding them to Account Managers.
- Account Managers review manager-approved requests before finalizing them.
- Email Notifications: Automated notifications to managers when new requests are submitted.
- Request History: View past refund requests with filtering options.
- Export Reports: Download reports in CSV, PDF, or Excel format.
- Node.js with Express.js
- Sequelize ORM with PostgreSQL
- JWT Authentication
- Nodemailer for email notifications
- React.js with TypeScript
- React Router for navigation
- Axios for API calls
- CSS Modules for styling
Ensure you have the following installed:
- Node.js (v16 or later)
- PostgreSQL
- Git
git clone https://github.com/your-repo/refund-management.git
cd refund-management
- Navigate to the
server
folder:cd server
- Install dependencies:
npm install
- Configure the
.env
file:Update thecp .env.example .env
.env
file with your database credentials and JWT secret. - Run database migrations:
npx sequelize-cli db:migrate
- Start the backend server:
npm run dev
- Navigate to the
client
folder:cd client
- Install dependencies:
npm install
- Start the React development server:
npm start
- Login as an employee to submit refund requests.
- Managers can review and approve/reject requests.
- Account Managers finalize approvals.
- Use the History Tab to view past requests.
- Export reports for auditing purposes.
- Fork the repository.
- Create a feature branch:
git checkout -b feature-name
. - Commit changes:
git commit -m 'Added feature X'
. - Push to branch:
git push origin feature-name
. - Submit a pull request.
This project is licensed under the MIT License.
For issues or feature requests, please open a GitHub issue or contact the development team.
Happy Coding! 🚀