https://github.com/roob1e/tabularium
Decentralized educational platform for automating educational institutions
https://github.com/roob1e/tabularium
java spring spring-boot spring-web tauri tauri-app typescript-react
Last synced: about 1 month ago
JSON representation
Decentralized educational platform for automating educational institutions
- Host: GitHub
- URL: https://github.com/roob1e/tabularium
- Owner: roob1e
- Created: 2025-09-09T08:36:13.000Z (9 months ago)
- Default Branch: master
- Last Pushed: 2025-09-30T20:04:26.000Z (9 months ago)
- Last Synced: 2025-09-30T20:10:44.587Z (9 months ago)
- Topics: java, spring, spring-boot, spring-web, tauri, tauri-app, typescript-react
- Language: Java
- Homepage:
- Size: 320 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
[Русский](README_ru.md)
# Tabularium 🏛️
**Decentralized educational platform for automating educational institutions**








## 📖 About the project
Tabularium is a modern decentralized platform for managing educational institutions. Each school receives its own autonomous server with full data control, without centralized information collection.
> The name comes from the ancient Roman **Tabularium** — the repository of state archives and documents.
## 🏗️ Architecture
### Key principles of the architecture
- **Autonomy**: Each server operates independently
- **Data isolation**: Data does not leave the institution
- **Scalability**: Easy addition of new schools
- **Security**: No single point of failure
## 🛠️ Technology stack
### Backend
- **Java 17** — primary language
- **Spring Boot 3.6** — web framework
- **Spring Data JPA** — database operations
- **Spring Security** — authentication and authorization
- **Spring Validation** — data validation
- **Hibernate 6.4** — ORM
- **Lombok** — code generation
- **PostgreSQL 16** — database
- **Liquibase** — database migrations
- **JUnit 5** — testing
### Frontend (Client application)
- **React 18** — UI library
- **TypeScript 5** — typed JavaScript
- **Tauri 2** — desktop shell (Rust)
- **MUI (Material-UI)** — UI components
- **React Hook Form** — form management
- **React Query** — state management
- **Axios** — HTTP client
- **Zod** — schema validation
### Infrastructure and tools
- **Docker 20.10+** — containerization
- **Docker Compose** — orchestration
- **Nginx** — reverse proxy
- **GitHub Actions** — CI/CD
- **Maven** — Java build
- **npm** — frontend build
- **Postman** — API testing
## ✨ Features
### 🎯 For school administrators
- **Nocode configuration** — intuitive interface without programming
- **Structure management** — creating groups, classes, subjects
- **Data import** — upload from CSV, Excel, 1C
- **User management** — roles and access rights
- **Backup** — automatic data backups
- **Reporting** — built-in and custom reports
### 👨🏫 For teachers
- **Electronic journal** — performance and attendance tracking
- **Schedule** — manage the academic timetable
- **Communication** — interaction with students and parents
- **Mobile access** — work from any device
- **Offline mode** — work without internet
### 🔧 Technical features
- **Autonomous servers** — each school has its own server
- **Automatic deployment** — installation in 3 commands
- **REST API** — integration with external systems
- **Web interface** — cross-platform access
- **Security** — RBAC and action audit
## 🔒 Security
### Protection measures
- JWT token authentication
- RBAC (Role-Based Access Control) authorization
- Data validation at all levels
- Action audit, logging all operations
- TLS 1.3 encryption for data transfer
- Daily backups
## 📈 Performance
### Recommended configurations
#### Small school (up to 100 students)
- 2 CPU cores
- 4 GB RAM
- 50 GB SSD
Cost: ~1,500 ₽/month
#### Medium school (100-500 students)
- 4 CPU cores
- 8 GB RAM
- 100 GB SSD
Cost: ~3,000 ₽/month
#### Large school (500+ students)
- 8 CPU cores
- 16 GB RAM
- 200 GB SSD
Cost: ~6,000 ₽/month
## 🤝 Development and contribution
### Development requirements
- JDK 17+
- Node.js 18+
- Rust 1.60+
- Docker 20.10+
- PostgreSQL 16
### 🚀 Running in development mode
Clone the repository:
```bash
git clone https://github.com/tabularium/tabularium.git
cd tabularium
```
Backend (Spring Boot):
```bash
cd backend
./mvnw spring-boot:run
```
Frontend (Tauri + React):
```bash
cd frontend
npm install
npm run tauri dev
```
Or run via Docker:
```bash
docker-compose -f docker-compose.dev.yml up
```
### 🏗️ Production build
Backend build:
```bash
cd backend
./mvnw clean package -DskipTests
```
Frontend build:
```bash
cd frontend
npm run tauri build
```
Creating Docker images:
```bash
docker build -t tabularium-backend:latest ./backend
docker build -t tabularium-frontend:latest ./frontend
```
## 📄 API documentation
### 🌐 Base URL
http://localhost:8080/api
### 📝 Request examples
Creating a student:
```http
POST /api/students
Content-Type: application/json
Authorization: Bearer
{
"fullname": "Ivan Ivanov",
"age": 16,
"phone": "+79123456789",
"birthdate": "2008-05-15",
"groupName": "10A"
}
```
Getting a list of groups:
```http
GET /api/groups
Authorization: Bearer
Authentication:
POST /api/auth/login
Content-Type: application/json
{
"username": "admin",
"password": "password123"
}
```
### 🚦 Project status
Current version: 0.0.1 (Beta)
Status: Active development