{"id":31999599,"url":"https://github.com/roob1e/tabularium","last_synced_at":"2026-05-05T04:33:08.713Z","repository":{"id":313885930,"uuid":"1053285119","full_name":"roob1e/tabularium","owner":"roob1e","description":"Decentralized educational platform for automating educational institutions","archived":false,"fork":false,"pushed_at":"2025-09-30T20:04:26.000Z","size":328,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-09-30T20:10:44.587Z","etag":null,"topics":["java","spring","spring-boot","spring-web","tauri","tauri-app","typescript-react"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/roob1e.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-09T08:36:13.000Z","updated_at":"2025-09-30T20:04:30.000Z","dependencies_parsed_at":"2025-09-09T11:15:02.525Z","dependency_job_id":"bb2e42c8-d57e-41cb-9d7d-6a5ba463ce51","html_url":"https://github.com/roob1e/tabularium","commit_stats":null,"previous_names":["roob1e/tabularium"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/roob1e/tabularium","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roob1e%2Ftabularium","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roob1e%2Ftabularium/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roob1e%2Ftabularium/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roob1e%2Ftabularium/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/roob1e","download_url":"https://codeload.github.com/roob1e/tabularium/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roob1e%2Ftabularium/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279085465,"owners_count":26100017,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-15T02:00:07.814Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","spring","spring-boot","spring-web","tauri","tauri-app","typescript-react"],"created_at":"2025-10-15T14:32:54.287Z","updated_at":"2025-10-15T14:32:57.377Z","avatar_url":"https://github.com/roob1e.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"[Русский](README_ru.md)\n# Tabularium 🏛️\n\n**Decentralized educational platform for automating educational institutions**\n\n![Java](https://img.shields.io/badge/Java-17-b07219)\n![Spring Boot](https://img.shields.io/badge/Spring_Boot-3.6-6db33f)\n![React](https://img.shields.io/badge/React-18-61dafb)\n![TypeScript](https://img.shields.io/badge/TypeScript-5-3178c6)\n![Tauri](https://img.shields.io/badge/Tauri-2-ffc131)\n![PostgreSQL](https://img.shields.io/badge/PostgreSQL-16-336791)\n![Docker](https://img.shields.io/badge/Docker-20.10-2496ed)\n![License](https://img.shields.io/badge/License-1C--like-orange)\n\n## 📖 About the project\n\nTabularium is a modern decentralized platform for managing educational institutions. Each school receives its own autonomous server with full data control, without centralized information collection.\n\n\u003e The name comes from the ancient Roman **Tabularium** — the repository of state archives and documents.\n\n## 🏗️ Architecture\n\n### Key principles of the architecture\n- **Autonomy**: Each server operates independently\n- **Data isolation**: Data does not leave the institution\n- **Scalability**: Easy addition of new schools\n- **Security**: No single point of failure\n## 🛠️ Technology stack\n\n### Backend\n- **Java 17** — primary language\n- **Spring Boot 3.6** — web framework\n- **Spring Data JPA** — database operations\n- **Spring Security** — authentication and authorization\n- **Spring Validation** — data validation\n- **Hibernate 6.4** — ORM\n- **Lombok** — code generation\n- **PostgreSQL 16** — database\n- **Liquibase** — database migrations\n- **JUnit 5** — testing\n\n### Frontend (Client application)\n- **React 18** — UI library\n- **TypeScript 5** — typed JavaScript\n- **Tauri 2** — desktop shell (Rust)\n- **MUI (Material-UI)** — UI components\n- **React Hook Form** — form management\n- **React Query** — state management\n- **Axios** — HTTP client\n- **Zod** — schema validation\n\n### Infrastructure and tools\n- **Docker 20.10+** — containerization\n- **Docker Compose** — orchestration\n- **Nginx** — reverse proxy\n- **GitHub Actions** — CI/CD\n- **Maven** — Java build\n- **npm** — frontend build\n- **Postman** — API testing\n## ✨ Features\n\n### 🎯 For school administrators\n- **Nocode configuration** — intuitive interface without programming\n- **Structure management** — creating groups, classes, subjects\n- **Data import** — upload from CSV, Excel, 1C\n- **User management** — roles and access rights\n- **Backup** — automatic data backups\n- **Reporting** — built-in and custom reports\n\n### 👨‍🏫 For teachers\n- **Electronic journal** — performance and attendance tracking\n- **Schedule** — manage the academic timetable\n- **Communication** — interaction with students and parents\n- **Mobile access** — work from any device\n- **Offline mode** — work without internet\n\n### 🔧 Technical features\n- **Autonomous servers** — each school has its own server\n- **Automatic deployment** — installation in 3 commands\n- **REST API** — integration with external systems\n- **Web interface** — cross-platform access\n- **Security** — RBAC and action audit\n\n## 🔒 Security\n### Protection measures\n- JWT token authentication\n- RBAC (Role-Based Access Control) authorization\n- Data validation at all levels\n- Action audit, logging all operations\n- TLS 1.3 encryption for data transfer\n- Daily backups\n## 📈 Performance\n### Recommended configurations\n#### Small school (up to 100 students)\n- 2 CPU cores\n- 4 GB RAM\n- 50 GB SSD\nCost: ~1,500 ₽/month\n\n#### Medium school (100-500 students)\n- 4 CPU cores\n- 8 GB RAM\n- 100 GB SSD\nCost: ~3,000 ₽/month\n\n#### Large school (500+ students)\n- 8 CPU cores\n- 16 GB RAM\n- 200 GB SSD\nCost: ~6,000 ₽/month\n\n## 🤝 Development and contribution\n### Development requirements\n- JDK 17+\n- Node.js 18+\n- Rust 1.60+\n- Docker 20.10+\n- PostgreSQL 16\n### 🚀 Running in development mode\n\nClone the repository:  \n```bash\ngit clone https://github.com/tabularium/tabularium.git  \ncd tabularium\n```\nBackend (Spring Boot):  \n```bash\ncd backend  \n./mvnw spring-boot:run\n```\nFrontend (Tauri + React):  \n```bash\ncd frontend  \nnpm install  \nnpm run tauri dev\n```\nOr run via Docker:  \n```bash\ndocker-compose -f docker-compose.dev.yml up\n```\n### 🏗️ Production build\n\nBackend build:  \n```bash\ncd backend  \n./mvnw clean package -DskipTests\n```\nFrontend build:  \n```bash\ncd frontend  \nnpm run tauri build\n```\nCreating Docker images:  \n```bash\ndocker build -t tabularium-backend:latest ./backend  \ndocker build -t tabularium-frontend:latest ./frontend\n```\n## 📄 API documentation\n\n### 🌐 Base URL\nhttp://localhost:8080/api\n\n### 📝 Request examples\n\nCreating a student:  \n```http\nPOST /api/students  \nContent-Type: application/json  \nAuthorization: Bearer \u003ctoken\u003e\n\n{\n    \"fullname\": \"Ivan Ivanov\",\n    \"age\": 16,\n    \"phone\": \"+79123456789\",\n    \"birthdate\": \"2008-05-15\",\n    \"groupName\": \"10A\"\n}\n```\nGetting a list of groups:  \n```http\nGET /api/groups  \nAuthorization: Bearer \u003ctoken\u003e\n\nAuthentication:  \nPOST /api/auth/login  \nContent-Type: application/json\n\n{\n    \"username\": \"admin\",\n    \"password\": \"password123\"\n}\n```\n### 🚦 Project status\n\nCurrent version: 0.0.1 (Beta)  \n\nStatus: Active development\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froob1e%2Ftabularium","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Froob1e%2Ftabularium","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froob1e%2Ftabularium/lists"}