Skip to content

yonas790/finance_erp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

155 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Finance ERP System 🚀

A comprehensive Enterprise Resource Planning (ERP) system designed for financial management, featuring a robust NestJS backend and a dynamic React frontend. This system provides a unified platform for managing students, transactions, and financial records with integrated payment processing.


🌟 Key Features

  • Multi-Role Dashboards: Specialized interfaces for Admins, Accountants, Cashiers, and Students.
  • Financial Management: Track transactions, manage budgets, and generate detailed financial reports.
  • Student Portal: Students can view their financial history, current balances, and make payments.
  • Chapa Payment Integration: Seamlessly process payments using the Chapa Payment Gateway.
  • Payment Collection: Cashiers can efficiently collect student payments with a dedicated payment collection interface.
  • Data Export: Export financial data to Excel (.xlsx) and PDF formats.
  • Secure Authentication: Role-based access control (RBAC) powered by JWT and Passport.
  • Responsive UI: Modern, responsive design built with Tailwind CSS and Lucide React.
  • Analytics & Visualization: Insightful charts and graphs using Recharts.

Backend

  • Framework: NestJS (Node.js)
  • Language: TypeScript
  • Database: MySQL with Sequelize ORM
  • Authentication: JWT & Passport
  • Validation: Class-validator & Class-transformer
  • Payment Gateway: Chapa

Frontend

  • Framework: React 19
  • Build Tool: Vite
  • Styling: Tailwind CSS
  • Icons: Lucide React
  • Data Visualization: Recharts
  • State Management: React Context API
  • Routing: React Router DOM v6

📂 Project Structure

finance_erp/
├── backend/            # NestJS API
│   ├── database/       # Sequelize config, migrations, models
│   │   ├── config/
│   │   ├── migrations/
│   │   └── models/
│   ├── src/            # Application source code
│   │   ├── auth/
│   │   ├── common/
│   │   ├── database/
│   │   ├── finance/
│   │   ├── notifications/
│   │   ├── staffs/
│   │   ├── students/
│   │   ├── transactions/
│   │   ├── users/
│   │   └── main.ts
│   └── test/           # Backend tests
├── frontend/           # React Application
│   ├── public/         # Static frontend assets
│   ├── src/
│   │   ├── api/        # API clients
│   │   ├── components/ # Reusable UI components
│   │   ├── context/    # Global state management
│   │   ├── hooks/      # Custom React hooks
│   │   ├── pages/      # Page views and role-specific screens
│   │   ├── styles/     # Tailwind and custom styles
│   │   └── utils/      # Utility helpers
└── uploads/            # File uploads
    └── finance_records/

🚀 Getting Started

Prerequisites

Installation

  1. Clone the repository:

    git clone https://github.com/your-username/finance_erp.git
    cd finance_erp
  2. Backend Setup:

    cd backend
    npm install
    cp .env.example .env
    # Update the .env file with your database credentials and Chapa keys
    npm run start:dev
  3. Frontend Setup:

    cd ../frontend
    npm install
    cp .env.example .env
    # Ensure VITE_API_BASE points to your backend instance
    npm run dev

⚙️ Environment Variables

Backend (.env)

Variable Description Default
DB_HOST Database host 127.0.0.1
DB_PORT Database port 3306
DB_USER Database username root
DB_PASSWORD Database password -
DB_NAME Database name -
JWT_SECRET Secret for JWT signing -
CHAPA_SECRET_KEY Chapa API Secret Key -
CHAPA_CALLBACK_URL Callback URL for Chapa -

Frontend (.env)

Variable Description Default
VITE_API_BASE Backend API URL http://localhost:5000

📖 Available Scripts

Backend

  • npm run start:dev - Run the server in development mode.
  • npm run build - Build the application for production.
  • npm run test - Run unit tests.

Frontend

  • npm run dev - Start the Vite development server.
  • npm run build - Build for production.
  • npm run lint - Run ESLint checks.

📄 License

This project is UNLICENSED.


🤝 Contributing

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git checkout origin feature/AmazingFeature)
  5. Open a Pull Request

About

A comprehensive Finance ERP system, featuring accounting, budgeting, expense tracking, invoicing, payroll, financial reporting, and role-based access management.

Resources

Stars

6 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors