README.md 5,3 КБ
Newer Older
Radch-enko's avatar
Radch-enko включено в состав коммита
1
2
# Effective Office

Effective Delivery's avatar
Effective Delivery включено в состав коммита
3
### Project Goal
Radch-enko's avatar
Radch-enko включено в состав коммита
4

Effective Delivery's avatar
Effective Delivery включено в состав коммита
5
Our goal is to make everyday office work simpler and more enjoyable by automating key processes.  
Radch-enko's avatar
Radch-enko включено в состав коммита
6

Effective Delivery's avatar
Effective Delivery включено в состав коммита
7
### Technical goal
Radch-enko's avatar
Radch-enko включено в состав коммита
8

Effective Delivery's avatar
Effective Delivery включено в состав коммита
9
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.  
Radch-enko's avatar
Radch-enko включено в состав коммита
10

Effective Delivery's avatar
Effective Delivery включено в состав коммита
11
12
# Apps
## Meeting Room
Radch-enko's avatar
Radch-enko включено в состав коммита
13
14
15

<img src="media/tablet/demo-tablet.gif" style="height: 50%;" />

Stanislav Radchenko's avatar
Stanislav Radchenko включено в состав коммита
16
### Features Overview
Radch-enko's avatar
Radch-enko включено в состав коммита
17
18
19
20
21
22
23
24
25

| 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                      |
Radch-enko's avatar
Radch-enko включено в состав коммита
26

Effective Delivery's avatar
Effective Delivery включено в состав коммита
27
# Quick Start
Radch-enko's avatar
Radch-enko включено в состав коммита
28
29

### Prerequisites
Radch-enko's avatar
Radch-enko включено в состав коммита
30

Radch-enko's avatar
Radch-enko включено в состав коммита
31
32
- Git
- Docker and Docker Compose
Radch-enko's avatar
Radch-enko включено в состав коммита
33
- JDK 17 or higher
Radch-enko's avatar
Radch-enko включено в состав коммита
34
- Gitleaks (for development)
Radch-enko's avatar
Radch-enko включено в состав коммита
35

Radch-enko's avatar
Radch-enko включено в состав коммита
36
### Installation
Radch-enko's avatar
Radch-enko включено в состав коммита
37

Radch-enko's avatar
Radch-enko включено в состав коммита
38
1. Clone the repository:
Stanislav Radchenko's avatar
Stanislav Radchenko включено в состав коммита
39
40
41
   ```bash
   git clone https://github.com/effective-dev-opensource/Effective-Office.git
   cd Effective-Office
Radch-enko's avatar
Radch-enko включено в состав коммита
42
43
   ```

Stanislav Radchenko's avatar
Stanislav Radchenko включено в состав коммита
44
45
2. Install Git hooks for development:
   ```bash
Radch-enko's avatar
Radch-enko включено в состав коммита
46
   ./scripts/install.sh
Radch-enko's avatar
Radch-enko включено в состав коммита
47
48
   ```

Stanislav Radchenko's avatar
Stanislav Radchenko включено в состав коммита
49
50
51
3. Configure environment variables:
   ```bash
   cp backend/app/src/main/resources/env.example backend/app/src/main/resources/.env
Radch-enko's avatar
Radch-enko включено в состав коммита
52
   ```
Stanislav Radchenko's avatar
Stanislav Radchenko включено в состав коммита
53
   Edit the `.env` file with your configuration.
Radch-enko's avatar
Radch-enko включено в состав коммита
54

Stanislav Radchenko's avatar
Stanislav Radchenko включено в состав коммита
55
56
57
58
59
60
61
4. Set up required credentials:
   - Add `google-credentials.json` for Google Calendar API
   - Add `firebase-credentials.json` for Firebase notifications
   - Generate keystore files for Android applications

5. Run the backend (using Docker):
   ```bash
Radch-enko's avatar
Radch-enko включено в состав коммита
62
63
   cd deploy/dev
   docker-compose up -d
Radch-enko's avatar
Radch-enko включено в состав коммита
64
65
   ```

Stanislav Radchenko's avatar
Stanislav Radchenko включено в состав коммита
66
67
68
69
70
71
72
73
74
   Or run locally without Docker:
   ```bash
   # 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'
   ```

Effective Delivery's avatar
Effective Delivery включено в состав коммита
75
### Run Clients
Stanislav Radchenko's avatar
Stanislav Radchenko включено в состав коммита
76
77
78
79
80
1. Open the project in Android Studio or IntelliJ IDEA
2. Sync the Gradle project to download dependencies
3. Choose the appropriate run configuration in IDE
4. Run (Shift+F10 or Control+R)

Stanislav Radchenko's avatar
Stanislav Radchenko включено в состав коммита
81
82
For detailed installation instructions, including setting up credentials and running client applications, see our [Getting Started Guide](https://github.com/effective-dev-opensource/Effective-Office/wiki/Getting-Started-with-Effective-Office) in the wiki.

Effective Delivery's avatar
Effective Delivery включено в состав коммита
83
### Project Structure
Radch-enko's avatar
Radch-enko включено в состав коммита
84

Radch-enko's avatar
Radch-enko включено в состав коммита
85
```
Radch-enko's avatar
Radch-enko включено в состав коммита
86
effective-office/
Stanislav Radchenko's avatar
Stanislav Radchenko включено в состав коммита
87
├── backend/           # Server-side Spring Boot application with PostgreSQL
Radch-enko's avatar
Radch-enko включено в состав коммита
88
├── clients/           # Client applications
Radch-enko's avatar
Radch-enko включено в состав коммита
89
├── iosApp/            # iOS tablet application
Radch-enko's avatar
Radch-enko включено в состав коммита
90
91
92
93
94
95
96
├── 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
Radch-enko's avatar
Radch-enko включено в состав коммита
97
98
```

Effective Delivery's avatar
Effective Delivery включено в состав коммита
99
# Documentation
Radch-enko's avatar
Radch-enko включено в состав коммита
100

Stanislav Radchenko's avatar
Stanislav Radchenko включено в состав коммита
101
For comprehensive documentation, please visit our [Wiki](https://github.com/effective-dev-opensource/Effective-Office/wiki).
Radch-enko's avatar
Radch-enko включено в состав коммита
102

Effective Delivery's avatar
Effective Delivery включено в состав коммита
103
# Contributing
Radch-enko's avatar
Radch-enko включено в состав коммита
104

Stanislav Radchenko's avatar
Stanislav Radchenko включено в состав коммита
105
We welcome contributions! Please see our [CONTRIBUTION.md](CONTRIBUTION.md) file for guidelines.
Radch-enko's avatar
Radch-enko включено в состав коммита
106

Effective Delivery's avatar
Effective Delivery включено в состав коммита
107
108
109
110
111
112
113
# AI Tools in Development
We actively use [Junie](https://www.jetbrains.com//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.  

# Roadmap
**TV**
Radch-enko's avatar
Radch-enko включено в состав коммита
114

Effective Delivery's avatar
Effective Delivery включено в состав коммита
115
116
117
118
119
120
121
122
123
124
125
126
A TV application featuring a corporate news and photo feed, event announcements with external registration, Duolingo and sports leaderboards, and an internal currency tracker. Currently in development.


**SMS Router**

A service for automatic routing of incoming SMS messages to the appropriate channels and systems. Supports dual SIM and eSIM, operates in the background, and routes messages based on the recipient number — improving the security and reliability of the infrastructure. Currently in development.


**Foosball Tracker**

An application for tracking foosball match results. It allows users to log games, maintain leaderboards, and view statistics — all to encourage friendly competition in the office. Currently in development.

Effective Delivery's avatar
Effective Delivery включено в состав коммита
127
# Authors
Radch-enko's avatar
Radch-enko включено в состав коммита
128

Stanislav Radchenko's avatar
Stanislav Radchenko включено в состав коммита
129
130
131
- [Alex Korovyansky](https://t.me/alexkorovyansky) 
- [Matvey Avgul](https://t.me/matthewavgul) 
- [Tatyana Terleeva](https://t.me/tatyana_terleeva) 
Radch-enko's avatar
Radch-enko включено в состав коммита
132
133
- [Stanislav Radchenko](https://github.com/Radch-enko)
- [Vitaly Smirnov](https://github.com/KrugarValdes)
Stanislav Radchenko's avatar
Stanislav Radchenko включено в состав коммита
134
- [Viktoriya Kokh](https://t.me/the_koheskine)
Radch-enko's avatar
Radch-enko включено в состав коммита
135

Effective Delivery's avatar
Effective Delivery включено в состав коммита
136
# License
Stanislav Radchenko's avatar
Stanislav Radchenko включено в состав коммита
137
The code is available as open source under the terms of the [MIT LICENSE](LICENSE).