Our goal is to make everyday office work simpler and more enjoyable by automating key processes.
The main technical task of the project is to create a multi-module Kotlin Multiplatform application, focusing on modern and relevant solutions in this ecosystem. Throughout the project, we tried to minimize the use of other languages and technologies.
| Feature | Description |
|---|---|
| Real-time Availability | Displays up-to-date status of meeting rooms |
| Quick Booking | Instantly reserve an available room with a single tap |
| Time-Specific Reservations | Book rooms for specific time slots |
| Booking Cancellation | Cancel existing reservations with ease |
| Early Room Release | Free up the room before the end of the reservation |
| Google Calendar Integration | Syncs all bookings with Google Calendar |
| Feature | Description |
|---|---|
| Stories Display | Shows employee birthdays, anniversaries, new hires, and congratulatory highlights. |
| Leaderboard | Displays stats for Duolingo, sports, and internal currency. |
| Events | Displays upcoming events with QR codes for registration. |
| Photo Slideshow | Displays corporate photos grouped by albums. |
| Autoplay | Automatically switches between screens in a slideshow. |
| Remote Control | Allows navigation and interaction using a remote control. |
| Feature | Description |
|---|---|
| SMS Interception | Captures incoming SMS messages. |
| Webhook Forwarding | Sends SMS data to configured webhooks. |
| Per-SIM Configuration | Stores webhook settings for each SIM in SharedPreferences. |
| Delivery Logging | Logs SMS delivery status in Room database and provides a UI. |
| Settings UI | Allows configuration of webhook settings for each SIM. |
- Git
- Docker and Docker Compose
- JDK 17 or higher
- Gitleaks (for development)
-
Clone the repository:
git clone https://github.com/effective-dev-opensource/Effective-Office.git cd Effective-Office -
Install Git hooks for development:
./scripts/install.sh
-
Configure environment variables:
cp backend/app/src/main/resources/env.example backend/app/src/main/resources/.env
Edit the
.envfile with your configuration. -
Set up required credentials:
- Add
google-credentials.jsonfor Google Calendar API - Add
firebase-credentials.jsonfor Firebase notifications - Generate keystore files for Android applications
- Add
-
Run the backend (using Docker):
cd deploy/dev docker-compose up -dOr run locally without Docker:
# Start PostgreSQL docker run --name postgres-effectiveoffice -e POSTGRES_DB=effectiveoffice -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -p 5432:5432 -d postgres:15-alpine # Run the backend ./gradlew :backend:app:bootRun --args='--spring.profiles.active=local'
- Open the project in Android Studio or IntelliJ IDEA
- Sync the Gradle project to download dependencies
- Choose the appropriate run configuration in IDE
- Run (Shift+F10 or Control+R)
For detailed installation instructions, including setting up credentials and running client applications, see our Getting Started Guide in the wiki.
effective-office/
├── backend/ # Server-side Spring Boot application with PostgreSQL
├── clients/ # Client applications
│ ├── tablet/ # Meeting Room Tablet App
│ ├── tv/ # Company News & Photos TV App
│ ├── smsrouter/ # Android SMS Router & Webhooks
│ └── shared/ # Shared module for common functionality across clients
├── iosApp/ # iOS tablet application
├── deploy/ # Deployment configurations
│ ├── dev/ # Development environment
│ └── prod/ # Production environment
├── scripts/ # Utility scripts
│ ├── git-hooks/ # Git hooks for development
│ └── install.sh # Installation script
└── build-logic/ # Build configuration
For comprehensive documentation, please visit our Wiki.
We welcome contributions! Please see our CONTRIBUTION.md file for guidelines.
We actively use Junie, the AI coding agent from JetBrains, in the development and refactoring of Effective Office.
Junie helped us speed up backend initialization, migrate features from legacy code, and generate documentation and boilerplate.
We continue to use it as part of our workflow, combining automation with careful developer review.
Read more about our experience using Junie in the Medium article.
- Alex Korovyansky
- Matvey Avgul
- Maxim Mishenko
- Tatyana Terleeva
- Stanislav Radchenko
- Vitaly Smirnov
- Viktoriya Kokh
The code is available as open source under the terms of the MIT LICENSE.
