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

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

The main goal of the project is the automation of various processes in the office and providing
interesting statistics for employees.

Effective Delivery's avatar
Effective Delivery включено в состав коммита
8
## Technical goal
Radch-enko's avatar
Radch-enko включено в состав коммита
9
10
11
12
13
14

The main technical task of the project is to create a multi-module application on Kotlin,
trying to focus on the most modern and relevant solutions in this language. Throughout the project,
we tried to use other languages and
technologies as little as possible.

Effective Delivery's avatar
Effective Delivery включено в состав коммита
15
## Meeting Room Tablet App
Radch-enko's avatar
Radch-enko включено в состав коммита
16
17
18
19
20
21
22
23
24
25
26
27
28
29


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

### 🔧 Features Overview

| 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 включено в состав коммита
30

Stanislav Radchenko's avatar
Stanislav Radchenko включено в состав коммита
31
## Quick Start
Radch-enko's avatar
Radch-enko включено в состав коммита
32
33

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

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

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

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

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

Stanislav Radchenko's avatar
Stanislav Radchenko включено в состав коммита
53
54
55
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 включено в состав коммита
56
57
   ```

Stanislav Radchenko's avatar
Stanislav Radchenko включено в состав коммита
58
59
60
61
62
63
64
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 включено в состав коммита
65
66
   cd deploy/dev
   docker-compose up -d
Radch-enko's avatar
Radch-enko включено в состав коммита
67
68
   ```

Stanislav Radchenko's avatar
Stanislav Radchenko включено в состав коммита
69
70
71
72
73
74
75
76
77
78
79
   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'
   ```

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.

Radch-enko's avatar
Radch-enko включено в состав коммита
80
## Project Structure
Radch-enko's avatar
Radch-enko включено в состав коммита
81

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

Stanislav Radchenko's avatar
Stanislav Radchenko включено в состав коммита
96
## Documentation
Radch-enko's avatar
Radch-enko включено в состав коммита
97

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

Stanislav Radchenko's avatar
Stanislav Radchenko включено в состав коммита
100
## Contributing
Radch-enko's avatar
Radch-enko включено в состав коммита
101

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

## Roadmap
Effective Delivery's avatar
Effective Delivery включено в состав коммита
105
**TV App**
Radch-enko's avatar
Radch-enko включено в состав коммита
106

Effective Delivery's avatar
Effective Delivery включено в состав коммита
107
108
109
110
111
112
113
114
115
116
117
118
119
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.

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

Stanislav Radchenko's avatar
Stanislav Radchenko включено в состав коммита
121
122
123
- [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 включено в состав коммита
124
125
- [Stanislav Radchenko](https://github.com/Radch-enko)
- [Vitaly Smirnov](https://github.com/KrugarValdes)
Stanislav Radchenko's avatar
Stanislav Radchenko включено в состав коммита
126
- [Victoria Maksimovna](https://t.me/the_koheskine)
Radch-enko's avatar
Radch-enko включено в состав коммита
127

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