README.md 4,9 КБ
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
31

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

Radch-enko's avatar
Radch-enko включено в состав коммита
33
The project follows a client-server architecture:
Radch-enko's avatar
Radch-enko включено в состав коммита
34

Radch-enko's avatar
Radch-enko включено в состав коммита
35
- **Backend**: Spring Boot application with PostgreSQL database
Radch-enko's avatar
Radch-enko включено в состав коммита
36
- **Clients**: Client applications and iOS tablet app
Radch-enko's avatar
Radch-enko включено в состав коммита
37
38
- **Deployment**: Docker-based containerization for easy deployment
- **Security**: Git hooks for leak detection to prevent sensitive information exposure
Radch-enko's avatar
Radch-enko включено в состав коммита
39
40
41
42

## Getting Started

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

Radch-enko's avatar
Radch-enko включено в состав коммита
44
45
- Git
- Docker and Docker Compose
Radch-enko's avatar
Radch-enko включено в состав коммита
46
- JDK 17 or higher
Radch-enko's avatar
Radch-enko включено в состав коммита
47
- Gitleaks (for development)
Radch-enko's avatar
Radch-enko включено в состав коммита
48

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

Radch-enko's avatar
Radch-enko включено в состав коммита
51
52
1. Clone the repository:
   ```
Radch-enko's avatar
Radch-enko включено в состав коммита
53
   git clone https://github.com/effective-dev-opensource/Effective-Office
Radch-enko's avatar
Radch-enko включено в состав коммита
54
55
56
   cd effective-office
   ```

Radch-enko's avatar
Radch-enko включено в состав коммита
57
2. Run the installation script to set up git hooks:
Radch-enko's avatar
Radch-enko включено в состав коммита
58
   ```
Radch-enko's avatar
Radch-enko включено в состав коммита
59
   ./scripts/install.sh
Radch-enko's avatar
Radch-enko включено в состав коммита
60
   ```
Radch-enko's avatar
Radch-enko включено в состав коммита
61
   This script installs a pre-commit hook that scans for potential secrets using Gitleaks.
Radch-enko's avatar
Radch-enko включено в состав коммита
62

Radch-enko's avatar
Radch-enko включено в состав коммита
63
3. Set up environment variables:
Radch-enko's avatar
Radch-enko включено в состав коммита
64
   ```
Radch-enko's avatar
Radch-enko включено в состав коммита
65
   cp deploy/dev/.env.example deploy/dev/.env
Radch-enko's avatar
Radch-enko включено в состав коммита
66
   ```
Radch-enko's avatar
Radch-enko включено в состав коммита
67
   Edit the `.env` file with your configuration.
Radch-enko's avatar
Radch-enko включено в состав коммита
68

Radch-enko's avatar
Radch-enko включено в состав коммита
69
4. Build and run the application:
Radch-enko's avatar
Radch-enko включено в состав коммита
70
   ```
Radch-enko's avatar
Radch-enko включено в состав коммита
71
72
   cd deploy/dev
   docker-compose up -d
Radch-enko's avatar
Radch-enko включено в состав коммита
73
74
   ```

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

Radch-enko's avatar
Radch-enko включено в состав коммита
77
```
Radch-enko's avatar
Radch-enko включено в состав коммита
78
79
80
effective-office/
├── backend/           # Server-side application
│   └── README.md      # Detailed backend documentation
Radch-enko's avatar
Radch-enko включено в состав коммита
81
├── clients/           # Client applications
Radch-enko's avatar
Radch-enko включено в состав коммита
82
│   └── README.md      # Detailed client documentation
Radch-enko's avatar
Radch-enko включено в состав коммита
83
├── iosApp/            # iOS tablet application
Radch-enko's avatar
Radch-enko включено в состав коммита
84
85
86
87
88
89
90
├── 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 включено в состав коммита
91
92
```

Radch-enko's avatar
Radch-enko включено в состав коммита
93
For detailed documentation:
Radch-enko's avatar
Radch-enko включено в состав коммита
94

Radch-enko's avatar
Radch-enko включено в состав коммита
95
96
- [Backend Documentation](./backend/README.md)
- [Client Documentation](./clients/README.md)
Radch-enko's avatar
Radch-enko включено в состав коммита
97
- [Build Logic Documentation](./build-logic/README.md)
Radch-enko's avatar
Radch-enko включено в состав коммита
98
- [Calendar Integration Documentation](docs/CALENDAR_INTEGRATION.md)
Radch-enko's avatar
Radch-enko включено в состав коммита
99
100

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

Radch-enko's avatar
Radch-enko включено в состав коммита
102
103
104
105
106
107
- **Build System**: Gradle with Kotlin DSL
- **Containerization**: Docker and Docker Compose
- **Security Scanning**: Gitleaks for secret detection
- **Version Control**: Git with pre-commit hooks

## Code Style & Conventions
Radch-enko's avatar
Radch-enko включено в состав коммита
108

Radch-enko's avatar
Radch-enko включено в состав коммита
109
110
111
112
113
- Follow Kotlin coding conventions for backend development
- Use consistent naming patterns across the codebase
- Document public APIs and complex logic
- Run the pre-commit hook to ensure no secrets are committed

Effective Delivery's avatar
Effective Delivery включено в состав коммита
114
## Contributing 
Radch-enko's avatar
Radch-enko включено в состав коммита
115
116
117
118
119

Our project is open-source, so we welcome quality contributions! To make your contribution to the
project efficient and easy to check out, you can familiarize yourself with the project's [git flow
and commit rules](docs/GIT_FLOW.md). If you want to solve an existing issue in the project, you can read the list in
the issues tab in the repository.
Radch-enko's avatar
Radch-enko включено в состав коммита
120
121

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

Effective Delivery's avatar
Effective Delivery включено в состав коммита
124
125
126
127
128
129
130
131
132
133
134
135
136
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 включено в состав коммита
137

Radch-enko's avatar
Radch-enko включено в состав коммита
138
139
- [Stanislav Radchenko](https://github.com/Radch-enko)
- [Vitaly Smirnov](https://github.com/KrugarValdes)
Radch-enko's avatar
Radch-enko включено в состав коммита
140