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.
- 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.
- 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).
- Node.js (For Angular)
- SQL Server (For database)
- .NET 6.0 SDK (For ASP.NET Core)
-
Clone the repository:
git clone https://github.com/codebangla/invoicika.git cd invoicika
-
Frontend (Angular):
cd frontend npm install ng serve
-
Backend (ASP.NET Core):
cd backend dotnet restore
-
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" }
-
-
Apply Migrations:
dotnet ef database update
-
Run the Angular frontend:
ng serve
-
Run the ASP.NET Core backend:
dotnet run
- Open your browser and navigate to
http://localhost:4200
for the frontend. Login withusername: admin1, password: admin1
as admin orusername: employee1, password: employee1
as employee. The backend is athttp://localhost:5000/swagger/index.html
- Open your browser and navigate to
-
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 yourappsettings.js
with your generated app password. In yourappsettings.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"
}
}
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
We welcome contributions! Please submit a pull request or report issues. Ensure your code follows the project guidelines and passes all tests before submission.
This project is licensed under the MIT License. See the LICENSE file for details.
Let me know if you'd like any further modifications!