A full-stack invoicing solution with user management, inventory, GST, and billing workflows.
- Frontend:
Frontend/(Angular 19 + Angular Material) - Backend:
Invoice/(.NET 8 Web API) - Database: SQL Server (default), cloud database Neon, PostgreSQL support via EF Core provider
- Auth: JWT-based authentication with role-based access (Admin/User)
- User authentication (JWT) and role-based access (Admin / User)
- Customer management (CRUD)
- Product management (CRUD)
- GST settings management
- Invoice generation, update, and delete
- Dashboard metrics (sales totals, invoices by status) / static
- Invoice items with quantity, price, and GST computation
- API documentation via Swagger (
/swagger)
- Angular 19
- Angular Material 19
- RxJS
- Bootstrap icons / google icons
- @ngneat/overview, @ngxpert/hot-toast
- TypeScript 5.7
- .NET 8
- ASP.NET Core Web API
- Entity Framework Core 8
- Microsoft.EntityFrameworkCore.SqlServer
- Npgsql.EntityFrameworkCore.PostgreSQL (optional)
- AutoMapper
- JWT Bearer Authentication
- Swashbuckle / OpenAPI
README.mdLICENSE
Frontend/angular.jsonFrontend/package.jsonFrontend/src/app/(main Angular modules and components)Frontend/src/environment/(environment variables)
Invoice/Invoice.csprojInvoice/Program.csInvoice/appsettings.jsonInvoice/Controllers/(Auth, Customer, Gst, Invoice, Product, User)Invoice/Data/InvoiceDbContext.csInvoice/DTOs/(request/response models)Invoice/Entities/(database entities not used in project)Invoice/Repository/,Invoice/Services/Invoice/Config/(dependency injection)
git clone <repository-url>
cd invoiceProjectcd Invoice
dotnet restore
dotnet build- Configure database connection in
appsettings.json:
"ConnectionStrings": {
"DefaultConnection": "Server=localhost;Database=<your_database>;Trusted_Connection=True;"
}- Run migrations (if not included):
dotnet ef migrations add InitialCreate
dotnet ef database update- Run API:
dotnet runDefault API URL: https://localhost:7068 or http://localhost:5065 (as configured on my backend)
cd ..\Frontend
npm install
npm startDefault Angular URL: http://localhost:4200
Update frontend API endpoint in Frontend/src/environments/environment.ts:
export const environment = {
production: false,
apiUrl: 'https://localhost:7068/api'
};- Backend:
https://localhost:7068/swaggerfor interactive API testing. - Frontend:
http://localhost:4200UI tests via Angular CLI. - Add unit/e2e tests in related directories (
Frontend/src/app/...andInvoice/service tests).
- Do not commit connection strings or secrets.
- Use
appsettings.Development.jsonfor local settings. - Use
Secret Manageror environment variables in production.
- Backend: host as ASP.NET Core app (IIS / Azure App Service / Docker)
- Frontend: build (
ng build --prod) and serve static files or deploy on static hosting - Ensure CORS is configured in
Program.csfor frontend origin.
- Fork repo
- Create branch
feature/<name> - Build, test, and commit
- Open PR against
main
MIT License
Ask for help or additional integration steps (reporting, emailing, invoices PDF).
give your suggestions to improve this project features , design etc.