Git Product home page Git Product logo

naturapeute / aposto-app Goto Github PK

View Code? Open in Web Editor NEW
4.0 1.0 0.0 1018 KB

Aposto is a 💸 free, 🌱 light, ✨ easy-to-use and 📖 open-source billing software dedicated to Swiss therapist. It allows generating invoices in compliance with new standard Tarif 590 and QR-invoice in a few seconds.

Home Page: http://app.aposto.ch

License: Other

JavaScript 27.30% SCSS 11.68% Svelte 59.24% Makefile 0.10% CSS 0.20% HTML 1.48%
tarif-590 therapeute suisse facturation cabinet asca rme santesuisse

aposto-app's Introduction

aposto-app

Aposto is a 💸 free, 🌱 light, ✨ easy-to-use and 📖 open-source billing software dedicated to Swiss therapist. It allows generating invoices in compliance with new standard Tarif 590 and QR-invoice in a few seconds.

🔥 Aposto is already online on app.aposto.ch. Find a full introduction to its features on aposto.ch.

🇫🇷 Note that Aposto is currently only available in French.

📽 Visit Naturapeute PeerTube channel and watch introduction videos on Aposto (only in 🇫🇷).

This repository contains the Aposto Web application. You can use it to 🧾 generate and 💌 send the PDF invoice by email to the patient and the therapist using SendInBlue mailing service.

The Web application is designed using Svelte responsive JavaScript framework.

Link to the API repository

Dependencies

To run the Aposto Web application on your machine, you need:

  • node.js (download link). After the installation, check that node and npm are properly installed by running in the terminal of your choice node -v and npm -v. Each command should display the node and npm installed version.

And that's it! The project will install all the node.js module dependencies itself on the next step. 🤙

Quick start

In the terminal of your choice, go through the following steps:

  • Install the project: npm install → It installs all the needed node.js modules. Note: You only have to run this command the first time.
  • Start the project: npm run dev → It launches the Web application.

You're done! The Web Application is now accessible on http://localhost:5000/. 🚀

Building the application

Then, you can build the Web application by simply running npm run build.

You can run the newly built app with npm run start.

Deploying the application

For the first time you are deploying the Web application, run the following commands :

> cd public
> git init
> git remote add origin [email protected]:etceterra/aposto-app.git
> git fetch
> git checkout gh-pages
> git pull

Then, from the project root folder, whenever you want to deploy the Web application, simply run make deploy.

License

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

aposto-app's People

Contributors

mlbiche avatar vinyll avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

aposto-app's Issues

Allow to set session duration before splitting the session

After first implementation and feedback from @vinyll :

  • Turn Number input into a duration chip set
  • Only display the duration chip set in edit mode and close it once a duration is selected
  • Limit service duration selection to the remaining duration
  • Disable adding a service when there is no remaining duration and no total durations set
  • Add new service from click on remaining duration chip
  • Delete Add service button
  • Add spa and add icons to remaining duration chip

Update pydantic

As the merge request on pydantic has been merged, negative JavaScript timestamps are now supported. pydantic has to be updated and the related code (marked with FIXME) can be updateD.

Implement bank information in author form

https://www.paymentstandards.ch/dam/downloads/qr-iid_qr-iban-fr.pdf

Bon si j'ai bien compris, on peut utiliser un QR-IBAN ou un IBAN indifféremment dans une QR-facture. La seule restriction est que si un QR-IBAN est utilisé, il faut obligatoirement une QR-reference. Si un IBAN est utilisé on peut utiliser une référence Creditor Reference ou aucune référence.

Si c'est bien ça, ça enlèverait toute ambiguïté de n'utiliser que des IBAN sans référence (les références permettent de faire le lien entre la transaction et la facture si j'ai bien compris).

La génération de justificatifs est disponibles à tous

La génération d'un justificatif ne devrait être autorisée, possiblement pour des raisons légales, que par des thérapeutes agréés.
La version démo devrait donc être ajustée en conséquence ; soit en forçant un nom de démo, soit en inscrivant une filigrane invalidant le justificatif.

CORS error

When clicking to create an invoice, the following error occurs:

TypeError: "NetworkError when attempting to fetch resource." FinalizeView.svelte:65:16
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://api.aposto.ch/email/eyJhdXRob3IiOnsibmFtZSI6Ikxob25l…OTcsInRlcnJhcGV1dGVJRCI6IjVlYzU2Yzg4YjFlMjE3YmFhOTA0MzJmNCJ9. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).

This occurs with a new user, not with Max-Antoine.

Note that I added the Cross-Origin header in the nginx config.
It now sends the email, however the error still displays and the window won't offer to start over.

Screen Shot 2020-05-24 at 20 24 28

Add a date field to services

Some therapists generate a receipt for several therapy session. They need to set a different date for each session. In order to keep the receipt edition fast, this fields have to be preset to today date.

Send invoice to client

Let's use a service like sendinblue or other to send receipts to the client and the therapist in bcc

Bug when updating total duration to a duration smaller than the sum of selected service durations

When updating the total duration to a duration smaller than the sum of selected service durations, the remaining duration bar appears while there is not remaining duration.

It is due to the remaining duration calculation that returns a negative value. As it is, it is considered as a remaining duration and the timeline is displayed.

We can fix it easily by returning 0 from remaining duration calculation when the result is negative. Nevertheless, it raises an other issue : what happen to already selected services ? Should we shrink the last service according to the new total duration ? If so, what happen when the last service shrink to 0 and, more, if there new total duration does not cover the second to last neither ?

IMO, a solution would be to leave the selected services as they are when updating the total duration but to consider the session description as invalid and this way disable the send button (the send button status is not based on session description validity yet, but it is planned).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.