Bản demo và tải xuống Invoice Ninja | Bộ sưu tập mã nguồn mở

 ...

Giới thiệu

Phiên bản 5 của Invoice Ninja đã có mặt! Chúng tôi đã lấy những phần tốt nhất của phiên bản 4 và thêm các tính năng được yêu cầu nhiều nhất để tạo ra một ứng dụng lập hóa đơn không giống bất kỳ ứng dụng nào khác.

Tất cả các tính năng Pro và Enterprise từ ứng dụng được lưu trữ đều có trong mã mở. Chúng tôi cung cấp giấy phép nhãn trắng trị giá 30 đô la một năm để xóa nhãn hiệu Invoice Ninja khỏi các phần hướng đến khách hàng của ứng dụng.

Cài đặt

Ứng dụng di động

Ứng dụng máy tính để bàn

Tùy chọn cài đặt

Nhà cung cấp được đề xuất

Thiết lập lưu trữ nhanh

git clone https://github.com/invoiceninja/invoiceninja.git
git checkout v5-stable
cp .env.example .env
composer i -o --no-dev
php artisan key:generate

Xin lưu ý: APP_KEY trong tệp .env được sử dụng để mã hóa dữ liệu, nếu bạn mất khóa này, bạn sẽ không thể chạy ứng dụng.

Chạy nếu bạn muốn tải dữ liệu mẫu, hãy nhớ cấu hình .env

php artisan migrate:fresh --seed && php artisan db:seed && php artisan ninja:create-test-data

Để chạy máy chủ web

php artisan serve 

Điều hướng đến (thay thế localhost bằng tên miền thích hợp)

http://localhost:8000/setup - To setup your configuration if you did not load sample data.
http://localhost:8000/ - For Administrator Logon

user: small@example.com
pass: password

http://localhost:8000/client/login - For Client Portal

user: user@example.com
pass: password

Hướng dẫn dành cho nhà phát triển

Thiết kế ứng dụng

API và cổng thông tin khách hàng đã được phát triển bằng Laravel. Nếu bạn muốn đóng góp cho dự án này thì việc quen thuộc với Laravel là điều cần thiết.

Khi kiểm tra chức năng của API, nơi tốt nhất để bắt đầu sẽ là trong tệp routes/api.php mô tả tất cả các điểm cuối API khả dụng. Các phương thức điều khiển sau đó mô tả tất cả các điểm vào trong từng miền của ứng dụng, tức là InvoiceController / QuoteController

Yêu cầu API trung bình sẽ theo đường dẫn này vào ứng dụng.

  • Phần mềm trung gian xử lý yêu cầu ban đầu bằng cách kiểm tra tên miền được yêu cầu + cung cấp lớp xác thực.
  • Yêu cầu sau đó chuyển vào Form Request (Kiểu được gợi ý trong phương thức điều khiển) được sử dụng để cung cấp quyền hạn và xác thực yêu cầu. Nếu thành công, yêu cầu sau đó được chuyển vào phương thức điều khiển nơi nó được tiêu hóa, đây là một ví dụ:
public function store(StoreInvoiceRequest $request)
{

    $invoice = $this->invoice_repo->save($request->all(), InvoiceFactory::create(auth()->user()->company()->id, auth()->user()->id));

    $invoice = $invoice->service()
                        ->fillDefaults()
                        ->triggeredActions($request)
                        ->adjustInventory()
                        ->save();

    event(new InvoiceWasCreated($invoice, $invoice->company, Ninja::eventVars(auth()->user() ? auth()->user()->id : null)));

    return $this->itemResponse($invoice);

}

Ví dụ, chúng tôi đang lưu trữ một hóa đơn mới và chuyển yêu cầu đã xác thực cùng với một nhà máy vào kho lưu trữ hóa đơn, nơi hóa đơn được xử lý và lưu lại.

Hóa đơn được trả về sau đó sẽ chuyển qua lớp dịch vụ của nó (ứng dụng/Dịch vụ/Hóa đơn), tại đó nhiều hành động khác nhau được thực hiện.

Sau đó, một sự kiện được kích hoạt để thông báo cho người nghe trong ứng dụng (app/Providers/EventServiceProvider) thực hiện các tác vụ phụ không chặn

Cuối cùng, hóa đơn được chuyển đổi (app/Transformers/) và trả về dưới dạng phản hồi thông qua Fractal.

Môi trường phát triển

Sử dụng Thiết lập lưu trữ nhanh được mô tả ở trên, bạn có thể nhanh chóng bắt đầu xây dựng môi trường phát triển của mình. Thay vì sử dụng

composer i -o --no-dev

sử dụng

composer i -o

Điều này cung cấp các công cụ dành cho nhà phát triển bao gồm phpunit cho phép chạy bộ kiểm tra.

Nếu bạn đang cân nhắc đóng góp trở lại kho lưu trữ chính, vui lòng thêm vào bất kỳ bài kiểm tra nào cho chức năng/sửa đổi mới. Điều này sẽ làm tăng đáng kể cơ hội được chấp nhận PR của bạn

Ngoài ra, nếu bạn có kế hoạch bổ sung bất kỳ nội dung nào vào kho lưu trữ chính, trước tiên bạn có thể thảo luận với chúng tôi trên Slack, nơi chúng tôi có thể hỗ trợ thông tin kỹ thuật và cung cấp lời khuyên.

Tín dụng

Bảo vệ

Nếu bạn tìm thấy vấn đề bảo mật với ứng dụng này, vui lòng gửi email đến contact@invoiceninja.com . Vui lòng tuân thủ các quy trình tiết lộ có trách nhiệm nếu bạn phát hiện ra vấn đề. Để biết thêm thông tin về tiết lộ có trách nhiệm, vui lòng đọc tại đây .

Đăng nhận xét

Mới hơn Cũ hơn