Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,12 @@ ENV IP=0.0.0.0
ENV PORT=8080
EXPOSE 8080

LABEL org.opencontainers.image.source=https://github.com/sfseeger/roommates
LABEL org.opencontainers.image.description="A cross platform application to help organize shared living spaces, built with Rust and Dioxus."
LABEL org.opencontainers.image.licenses=GPL-3.0-or-later

WORKDIR /app
RUN mkdir db

RUN useradd -m -u 10001 roommates

Expand Down
674 changes: 674 additions & 0 deletions LICENSE

Large diffs are not rendered by default.

60 changes: 53 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,40 @@
Making organizing easy
</p>

<details open>
<summary><h2>Table of Contents</h2></summary>

- [Features](#features)
- [Deployment](#deployment)
- [Server](#server)
- [Server with Sqlite Database](#server-with-sqlite-database)
- [Server with MySQL/MariaDB](#server-with-mysqlmariadb)
- [Clients](#clients)
- [Android](#android)
- [Tools and Dependencies](#tools-and-dependencies)
- [Development](#development)
- [Project Structure](#project-structure)
- [Serving Your App](#serving-your-app)
- [Development Services](#development-services)
- [Dev Container](#dev-container)
- [Pre-Commit Hooks](#pre-commit-hooks)
- [Testing](#testing)
- [Disclosure of AI Usage](#disclosure-of-ai-usage)

</details>

## Features
* Create, view and share Events with groups and individual users
![alt text](screenshots/eventcreate.png)![alt text](screenshots/group-dark.png) ![alt text](screenshots/calendar.png)
* Manage and collaborate on To-Do Lists with different permissions
![alt text](screenshots/todolist.png)
* Choose from multiple themes to personalize your experience
![alt text](screenshots/dashboard-dark.png)
![alt text](<screenshots/dashboard pastel.png>)
* Compatible with both MySQL and SQLite databases
* Cross-Platform Support ([See Clients](#clients))


## Deployment

### Server
Expand All @@ -16,11 +50,12 @@ docker on your machine and the server.
#### Server with Sqlite Database

```bash
docker build -t roommates-server .
docker run -d -p 8080:8080 \
-e DATABASE_URL="sqlite://db.sqlite?mode=rwc" \
-v database:/app/db.sqlite \
--name roommates-server roommates-server
-e DATABASE_URL="sqlite://db/db.sqlite?mode=rwc" \
-e ACCESS_LOG=true \
-v database:/app/db/ \
--name roommates-server \
ghcr.io/sfseeger/roommates:latest
```

#### Server with MySQL/MariaDB
Expand All @@ -40,8 +75,7 @@ services:
- db_data:/var/lib/mysql

roommates-server:
build:
context: https://github.com/SFSeeger/RoomMates.git#main
image: ghcr.io/sfseeger/roommates:latest
restart: unless-stopped
ports:
- "8080:8080"
Expand Down Expand Up @@ -170,7 +204,7 @@ make dev-server PLATFORM=desktop
### Development Services

| Port | Service | Description |
|------|-------------|--------------------------------------------------|
| ---- | ----------- | ------------------------------------------------ |
| 8080 | Application | The Application served by the development server |
| 8000 | phpMyAdmin | Database frontend for development |
| 3306 | MariaDB | Database Server |
Expand All @@ -190,10 +224,22 @@ should already be installed in the devcontainer.

### Testing

Test Disclaimer:

Some tests for basic and advanced database logic were done using unit tests. However later on, most tests were conducted by directly running and using the project, since a lot of the work was concerning the UI. Additionally most of the database operations are pretty similar, so in the interest of saving time, there was not a need to write individual tests for every one of them. The focus was on working directly with the interactive components of the project, seeing what worked and gaining concrete information about occurring errors through example data and debugging with developer tools.

To run the tests for the project, use the following command:

```bash
make tests
```

## Disclosure of AI Usage
AI was used for Tab-Completing and Debugging, never for generating whole sections of code without a human creating derivatives of said generated code.
Model used were:
- ChatGPT 4o, 4.1 and 5
- Github Copilot
- Google Gemini


[^1]: Angle brackets (`<>`) indicate required arguments, square brackets (`[]`) indicate optional arguments.
Binary file added screenshots/calendar.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added screenshots/dashboard pastel.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added screenshots/dashboard-dark.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added screenshots/eventcreate.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added screenshots/group-dark.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added screenshots/todolist.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.