Manuel Bustillo fdef94be9a
Some checks failed
Add copyright notice / copyright_notice (pull_request) Successful in 1m23s
Check usage of free licenses / check-licenses (pull_request) Successful in 1m50s
Run unit tests / unit_tests (pull_request) Failing after 2m26s
Revert "Fix tenant-related error retrieving captcha"
This reverts commit 3996ffc85c1fe3a912db14cbb317158fe9bcd8e2.
2024-12-07 23:18:23 +01:00
2024-11-03 08:59:56 +01:00
2024-12-07 18:09:21 +00:00
2024-07-11 18:42:31 +02:00
2024-07-11 18:42:31 +02:00
2024-12-07 12:39:43 +01:00
2024-07-11 18:42:31 +02:00
2024-07-11 18:42:31 +02:00
2024-07-11 18:42:31 +02:00
2024-11-03 13:40:50 +01:00
2024-07-11 18:42:31 +02:00
2024-11-15 18:28:45 +01:00
2024-07-11 19:41:36 +02:00
2024-07-11 18:42:31 +02:00
2024-11-09 08:39:57 +01:00
2024-11-15 18:28:45 +01:00
2024-12-07 20:27:28 +01:00
2024-07-11 18:42:31 +02:00
2024-08-10 08:28:09 +00:00

Libre Wedding Planner

Libre Wedding Planner is Free, Open Source Software that helps organize several aspects of a wedding.

The project is not production-ready yet.

Features

The follwing features are either developed or under active development:

  • Guests management
  • Expense management
  • Seating chart

Next steps

Some ideas we would like to implement next:

  • Authentication (required to make an instance public)
  • Website with wedding information
  • Attendance confirmation forms
  • Multitenancy

Development setup

Libre Wedding Planner is made of two main pieces:

  • The backend (this repo), built with Ruby (on Rails)
  • The frontend (repo here), built with NextJS and React. You will need both to have the service fully working.

Both repositories are expected to live have a common parent directory:

projects <or anything else>
  |-> wedding-planner 
  |-> wedding-planner-frontend 

Docker compose

Docker compose is the recommended way to run Libre Wedding Planner for development purposes. After downloading both repositories, cd to the root of wedding-planner and run:

docker compose up --build

Several containers will be started:

  • backend: starts a Rails server that will act as an API.
  • workers: starts a runner of solid queue that takes .care of async tasks.
  • frontend: starts a NextJS application in charge of the frontend.
  • nginx: A reverse proxy that the backend and frontend under the same domain, and routes all requests to the upstream services.
  • db: A Postgres instance used by the backend service.

The backend service will seed the database with fake data. It's worth noting that the Postgres container does not have a volume, so the application will be seeded every time the container is created.

The backend, frontend and workers have hot-reloading enabled, so changes made to the codebase should be reflected in the application on the next request.

Once all containers have started, visit http://libre-wedding-planner.app.localhost/default/dashboard to load the application.

Multitenancy

LibreWeddingPlanner is designed to manage multiple weddings in a single host. All URLs (in the API and the frontend) are scoped under a slug that is unique per wedding. The slug is made of lowercase letters, numbers, and dashes (-).

The development environment is seeded with a wedding whose slug is default.

Email delivery

In the development environment, real emails will not be sent. You can visit http://libre-wedding-planner.app.localhost/letter_opener/ to get a list of emails generated by the application.

Testing

Unit tests can be executed with

bundle exec rspec

API documentation

Generate the OpenAPI documentation with the command:

rake rswag:specs:swaggerize

The documentation is available in Swagger UI in http://libre-wedding-planner.app.localhost/api/api-docs/index.html. If testing the API through the UI, you will need to select the second server (which includes the /api path), intended for development.

Contributing

Contributions of all kinds (code, UX/UI, testing, translations, etc.) are welcome. The procedures to contribute are still being defined, but don't hesitate to reach out in case you want to participate.

License

This project is licensed under the GNU Affero General Public License (AGPL). Check COPYING.md for additional information.

Description
No description provided
Readme 2.6 MiB
Languages
Ruby 93.5%
HTML 4.2%
Dockerfile 1.1%
JavaScript 0.7%
CSS 0.4%
Other 0.1%