Responsive web application for university students to interact, share resources, and collaborate.
This project implements a responsive, secure web–based database application designed to foster interaction, collaboration, and information sharing among university students. Developed as a Bachelor’s thesis at the University of Pardubice, Faculty of Electrical Engineering and Informatics.
-
User Authentication & Authorization
- Email verification, JWT–based login
-
STAG Integration
- Pulls official study data (OSČÍSLO, faculty, program, year)
-
Study Groups Module
- Create/join private or public groups
- Post news, share files, manage membership
-
Forum Module
- Multi–topic forums, threaded discussions
- Moderator & pinned/informational flags
-
Real–time Chat & Notifications
- One–to–one WebSocket chat
- In–app notifications
-
Marketplace & Calendar
- Buy/sell student items, events scheduling
-
User Profiles & Networking
- Public/private profiles, friends list, search
- Skills, status, personal “About me”
-
Responsive UI
- Mobile–friendly layout in Vue.js
| Layer | Technology |
|---|---|
| Backend | Java 17, Spring Boot, Spring Security |
| Frontend | Vue.js 3, Vuex, Vue Router, Axios |
| Database | PostgreSQL |
| Realtime | WebSocket (STOMP over SockJS) |
| Container | Docker, Docker Compose |
| Build Tools | Maven (backend), npm & Vite (frontend) |
Architecture follows a multilayer MVC pattern:
- Model: Entities & DTOs
- Repository: Spring Data JPA
- Service: Business logic, STAG service
- Controller: REST & WebSocket endpoints
- ViewModel/Store: Vuex stores & reactive components
- Java 17+
- Node.js 16+ & npm
- PostgreSQL 12+
- Docker & Docker Compose (optional, recommended)
-
Clone the repo and navigate to the backend folder:
git clone https://github.com/your-org/student-community-platform.git cd student-community-platform/backend -
Configure application properties in
src/main/resources/application.properties:spring.datasource.url=jdbc:postgresql://localhost:5432/student_platform spring.datasource.username=… spring.datasource.password=… stag.api.url=https://stag.upce.cz/oauth2 stag.client.id=… stag.client.secret=…
-
Build & run:
mvn clean package java -jar target/student-community-platform-0.1.0.jar
-
In a new terminal, go to the frontend folder:
cd ../frontend -
Install dependencies & configure API base URL in
.env:VITE_API_BASE_URL=http://localhost:8080/api -
Start development server:
npm install npm run dev
-
Create PostgreSQL database & user:
CREATE DATABASE student_platform; CREATE USER scp_user WITH PASSWORD 'your_password'; GRANT ALL PRIVILEGES ON DATABASE student_platform TO scp_user;
-
Ensure the credentials match
application.properties.
A simple way to launch the full stack:
cd docker
docker-compose up --buildThis will start:
backendservice on:8080frontendservice on:5173postgresservice on:5432
- Register a new account or log in with your university email.
- Complete your profile and connect to STAG for automatic data import.
- Explore or create groups, forums, and events.
- Chat privately with other students.
- Share and browse study materials or marketplace posts.
To import official student data:
- In your profile, click Connect STAG.
- Authorize the application via the university’s OAuth2 endpoint.
- On success, your STAG token is stored and student info is fetched automatically.
-
Fork the repository & create a feature branch:
git checkout -b feature/YourFeature
-
Commit your changes & push:
git commit -m "Add YourFeature" git push origin feature/YourFeature -
Open a Pull Request for review.
Please follow the existing code style and include tests for new functionality.
This project is licensed under the MIT License. See LICENSE for details.
Andrii Streblychenko Bachelor Thesis, University of Pardubice, 2025 Email: sir.strel@gmail.com
This README is part of the “Studentská komunitní platforma” project