Skip to content

Sumit0ubey/InvoiceZen

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

InvoiceZen: Professional Invoice Generator

License: MIT

InvoiceZen is a powerful, secure, and easy-to-use application for generating professional GST-compliant invoices. Built with Spring Boot, it offers a robust backend with features like user authentication, PDF generation, and email integration.

✨ Features

  • Secure User Authentication: JWT-based authentication and authorization.
  • Professional Invoice Generation: Create and download invoices in PDF format.
  • GST Ready: Automatically calculates GST for your invoices.
  • Email Invoices: Send invoices directly to your clients from the application. (Note: This feature is not yet implemented)
  • RESTful API: A well-documented API for integration with other services.
  • Rate Limiting: Protects the application from brute-force attacks.
  • Scalable Architecture: Built with modern best practices for scalability and maintainability.

🚀 Tech Stack

  • Backend: Spring Boot 3, Java 21
  • Database: PostgreSQL, H2 (for development)
  • Authentication: Spring Security, JWT
  • Templating: Thymeleaf
  • PDF Generation: iTextPDF
  • API Documentation: Swagger (OpenAPI)
  • Mail: Spring Boot Starter Mail
  • Build Tool: Maven

🏗️ System Architecture

+----------------+      +---------------------+      +----------------+
|   Client       |----->|   InvoiceZen API    |<---->|   Database     |
| (Web Browser)  |      |  (Spring Boot)      |      |  (PostgreSQL)  |
+----------------+      +---------------------+      +----------------+
                         |
                         |
                         v
                    +----------------+
                    |  Email Service |
                    |  (SMTP)        |
                    +----------------+

🏁 Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Prerequisites

  • Java 21
  • Maven
  • PostgreSQL

Installation

  1. Clone the repository
    git clone https://github.com/your-username/Invoicezen.git
  2. Create a .env file Create a .env file in the root directory and add the environment variables from the env.example file.
  3. Update the environment variables Update the .env file with your database credentials, mail server details, and other configurations.
  4. Run the application
    mvn spring-boot:run

The application will be available at http://localhost:8080.

📖 API Documentation

The API is documented using Swagger. Once the application is running, you can access the Swagger UI at:

http://localhost:8080/swagger-ui.html

⚙️ Environment Variables

To run this project, you will need to add the following environment variables to your .env file:

  • DATABASE_HOST
  • DATABASE_PORT
  • DATABASE_NAME
  • DATABASE_USERNAME
  • DATABASE_PASSWORD
  • DATABASE_TYPE
  • DATABASE_DIALECT
  • PORT
  • SERVER_SERVLET_CONTEXT_PATH
  • MAIL_HOST
  • MAIL_PORT
  • MAIL_USERNAME
  • MAIL_PASSWORD
  • MAIL_FROM
  • APP_NAME
  • APP_DESCRIPTION
  • APP_VERSION
  • APP_ENVIRONMENT
  • APP_STATUS
  • JPA_SHOW_SQL
  • JPA_HIBERNATE_DDL_AUTO
  • LOGGING_LEVEL
  • CORS_ENABLED
  • CORS_ALLOWED_ORIGINS
  • CORS_ALLOWED_METHODS
  • CORS_ALLOWED_HEADERS
  • CORS_EXPOSED_HEADERS
  • CORS_ALLOW_CREDENTIALS
  • CORS_MAX_AGE
  • RATE_LIMIT_ENABLED
  • RATE_LIMIT_REQUESTS_MINUTES
  • RATE_LIMIT_REQUESTS_HOURS

📄 License

This project is licensed under the MIT License - see the LICENSE.md file for details.

👨‍💻 Contact

Your Name - your.email@example.com

Project Link: https://github.com/your-username/Invoicezen

About

InvoiceZen is a modern invoice management application designed to simplify the process of creating, managing, and tracking professional invoices. The project focuses on providing an efficient, user-friendly, and organized invoicing solution with clean UI design, automated calculations.

Topics

Resources

Stars

Watchers

Forks

Contributors