Merge pull request 'Initial version of the README' (#95) from documentation-setup into main
Some checks failed
Check usage of free licenses / build-static-assets (push) Successful in 43s
Build Nginx-based docker image / build-static-assets (push) Failing after 1m58s
Run unit tests / unit_tests (push) Successful in 2m24s

Reviewed-on: #95
This commit is contained in:
bustikiller 2024-11-04 22:21:54 +00:00
commit 1a39364322

View File

@ -1,24 +1,78 @@
# README # Libre Wedding Planner
This README would normally document whatever steps are necessary to get the Libre Wedding Planner is Free, Open Source Software that helps organize several aspects of a wedding.
application up and running.
Things you may want to cover: The project is not production-ready yet.
* Ruby version ## Features
* System dependencies The follwing features are either developed or under active development:
* Configuration - Guests management
- Expense management
- Seating chart
* Database creation
* Database initialization ## Next steps
* How to run the test suite Some ideas we would like to implement next:
* Services (job queues, cache servers, search engines, etc.) - Authentication (required to make an instance public)
- Website with wedding information
- Attendance confirmation forms
- Multitenancy
* Deployment instructions # Development setup
Libre Wedding Planner is made of two main pieces:
- The backend (this repo), built with Ruby (on Rails)
- The frontend (repo [here](https://gitea.bustikiller.com/bustikiller/wedding-planner-frontend/)), 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:
```bash
docker compose build
docker compose up
```
Several containers will be started:
- backend: starts a Rails server that will act as an API.
- workers: starts a runner of [solid queue](https://github.com/rails/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/dashboard to load the application.
## Testing
Unit tests can be executed with
```
bundle exec rspec
```
## 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](./COPYING.md) for additional information.
* ...