Skip to content

Invoicika is an invoice mangement system software made with .NET 6.0 Web API, Angular 16 and SQL Server

License

Notifications You must be signed in to change notification settings

codebangla/invoicika

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Invoicika

Invoicika

Invoicika is an advanced invoice management system built with Angular 16, ASP.NET Core Web API 6.0, and SQL Server. This system provides full-fledged invoicing capabilities, including unlimited invoice creation, customer management, PDF generation, and more. The frontend is built with Angular and utilizes NG-Zorro UI components for a modern, responsive design.

Features

  • Create Unlimited Invoices: Generate invoices without any restrictions.
  • Email Invoice: Send invoices directly to customers via email.
  • PDF Generation: Export invoices as PDFs for easy sharing and storage.
  • Customer Management: Add, edit, and manage customers with multiple shipping addresses.
  • Authentication & Roles: Secure login and role-based access control.
  • Customer Product Management: Add products linked to customers for quick access.
  • Sign Up & Profile Management: Users can sign up and manage their profile.
  • Image Upload: Upload and manage profile pictures and invoice logos.
  • VAT Management: Handle VAT for customer invoices.
  • Database: Built to work with SQL Server.

Description

Technologies Used

  • Frontend: Angular with NG-Zorro (Responsive UI components).
  • Backend: ASP.NET Core Web API 6.0 (Robust and scalable API layer).
  • Database: SQL Server (Code First Migration).

Description

How to Install (without Docker)

Prerequisites

  • Node.js (For Angular)
  • SQL Server (For database)
  • .NET 6.0 SDK (For ASP.NET Core)

Installation

  1. Clone the repository:

    git clone https://github.com/codebangla/invoicika.git
    cd invoicika
  2. Frontend (Angular):

    cd frontend
    npm install
    ng serve
  3. Backend (ASP.NET Core):

    cd backend
    dotnet restore
  4. Database Setup (SQL Server):

    • Ensure SQL Server is installed and running.

    • Update the connection strings in appsettings.json to configure your SQL Server database.

      Example:

      "ConnectionStrings": {
        "SqlServerConnection": "Your SQL Server connection string"
      }
  5. Apply Migrations:

    dotnet ef database update

Running the Application

  1. Run the Angular frontend:

    ng serve
  2. Run the ASP.NET Core backend:

    dotnet run
    1. Open your browser and navigate to http://localhost:4200 for the frontend. Login with username: admin1, password: admin1 as admin or username: employee1, password: employee1 as employee. The backend is at http://localhost:5000/swagger/index.html
  3. To use SMTP with Outlook, you need to generate an app password if two-factor authentication (2FA) is enabled on your Microsoft account. Follow this guide on how to get an app password for detailed steps.

    Make sure to replace the "Password" field in your appsettings.js with your generated app password. In your appsettings.js file, use the following format to configure the SMTP server:

{
  Email": {
    "SmtpServer": "smtp.office365.com",
    "SmtpPort": 587,
    "SenderEmail": "your-email@outlook-or-hotmail.com",
    "SenderName": "Invoicika Team",
    "SenderPassword": "your-app-password"
  }
}

Description

How to Install (with Docker)

Make sure you have Docker Desktop installed. Then run

docker-compose up

You might see the seeder failed in docker compose log. To make the seeder happend, from your Docker Desktop, stop the backend container and run it again from Invoicika. Open your browser and navigate to http://localhost:4444 for the frontend. Login with username: admin1, password: admin1 as admin or username: employee1, password: employee1 as employee. The backend is at http://localhost:5000/swagger/index.html

Description

Contributing

We welcome contributions! Please submit a pull request or report issues. Ensure your code follows the project guidelines and passes all tests before submission.

License

This project is licensed under the MIT License. See the LICENSE file for details.


Let me know if you'd like any further modifications!