Welcome to l.r.a.r - Lazy Roommate Avoidance Registry!
Our goal is to reduce paper waste in our frat house by digitizing essential tracking systems such as the dishwasher counter, burn counter, and more. This project provides a centralized platform for tenants to monitor and manage household responsibilities efficiently, promoting accountability and fostering a harmonious living environment.
- Chore Management: Track and rotate household chores among tenants.
- Burn System: Allow tenants to assign burns with reasons for not fulfilling their responsibilities.
- Real-time Updates: View current statuses and burn counts instantly.
- User-Friendly Interface: Intuitive frontend built with modern technologies.
This project leverages modern technologies to provide a robust and efficient solution:
- Frontend: Vue.js for a responsive and interactive user interface.
- Backend: Rust with Actix Web for building a high-performance, asynchronous API.
- Database: PostgreSQL for reliable data storage.
- ORM: Diesel for seamless interaction between the backend and the database.
Before running the application, ensure you have the following tools installed on your system:
- Docker
- Docker Compose
- Node.js (for frontend development)
- Rust (for backend development)
make
(build automation tool)git
(version control system)
Clone the repository to your local machine:
git clone https://github.com/jonasmorkland/lrar.git
cd lrar
To set up and run the entire project using Docker Compose, follow these steps:
-
Navigate to the Project Directory:
cd lrar
-
Start the Containers:
docker compose up -d --build
This command builds and starts the Docker containers for the frontend, backend, and database services.
-
Verify Containers:
Check if all containers are running:
docker ps
-
Access the Application:
- Frontend: http://localhost:5173
- Backend: http://localhost:3001
To stop the running containers, run the following command in the project directory:
docker compose stop
This gracefully stops all containers without removing them.
To remove containers, networks, and volumes, use:
docker compose down
To populate the database with initial data, run the following command in the same directory as the Makefile:
make populate
To remove all records from the tenants
and burn
tables:
make empty
Manage schema changes using Diesel migrations.
-
Generate a New Migration:
docker exec -it lrar_backend bin/bash diesel migration generate <migration-name>
Replace
<migration-name>
with a descriptive name for your migration, e.g.,create-table-tenant
. -
Edit
up.sql
anddown.sql
:- Define the SQL statements to apply the migration in
up.sql
. - Define the SQL statements to revert the migration in
down.sql
.
- Define the SQL statements to apply the migration in
-
Apply the Migration:
docker exec -it lrar_backend diesel migration run
-
Revert the Migration:
docker exec -it lrar_backend diesel migration revert
We welcome contributions to the l.r.a.r project. If you'd like to contribute, please follow these steps:
-
Fork the Repository:
git fork https://github.com/jonasmorkland/lrar.git
-
Create a Feature Branch:
git checkout -b feat/your-feature-name
-
Commit Your Changes:
git commit -m "feat: your feature description"
-
Push to Your Fork:
git push origin feat/your-feature-name
-
Submit a Pull Request.
This project is licensed under the GNU General Public License v3.0.
You are free to redistribute and modify this project under the terms of the GNU GPL v3.
For more details, see the official license text.