Invoice Manager is a full-stack web application designed to manage invoices efficiently. This application allows users to create, view, update, and delete invoices. Each invoice includes details such as the invoice number, client information, itemized list of products/services, total amount, and due date. The project utilizes the Next.js, Nest.js, PostgreSQL, and Prisma stack.
- Create, view, update, and delete invoices
- Export invoices as PDF files
- Export balance sheet reports as Excel files
- Responsive design for desktop and mobile devices
- Secure authentication for user management
- Frontend: Next.js
- Backend: Node.js
- Database: PostgreSQL
- ORM: Prisma
- Node.js (v14 or above)
- PostgreSQL
- Git
-
Clone the repository
git clone https://github.com/abenooo/invoice-manager.git cd invoice-manager
-
Install dependencies
cd frontend npm install cd ../backend npm install
-
Setup PostgreSQL Database
- Ensure PostgreSQL is installed and running.
- Create a new database, for example,
invoice_manager
. - Update the database connection string in the
.env
file in the backend directory.
DATABASE_URL=postgresql://USER:PASSWORD@localhost:5432/invoice_manager
-
Run Database Migrations
cd backend npx prisma migrate dev --name init
-
Start the backend server
cd backend npm run start
-
Start the frontend server
cd frontend npm run dev
- The frontend can be accessed at
http://localhost:3000
- The backend API can be accessed at
http://localhost:4000
- PDF export: Navigate to an invoice detail page and click on the "Export as PDF" button.
- Excel export: Navigate to the invoices page and click on the "Export as Excel" button.
To deploy the application we will use Vercel
-
Frontend Deployment:
- Push your frontend code to a repository.
- Deploy using Vercel.
-
Backend Deployment:
- Push your backend code to a repository.
- Deploy using Heroku or any other preferred platform.
- Ensure the PostgreSQL database is also set up on the cloud platform.
-
Update Environment Variables:
- Ensure all environment variables are correctly set up on the deployment platform.
- This project follows best practices for frontend and backend development.
- Input validation and error handling are implemented.
- Authentication is handled securely to manage user access.
Feel free to fork this repository and submit pull requests. For major changes, please open an issue first to discuss what you would like to change.
For any questions or suggestions, please contact [abenezerkifle000@gmail.com]