Files
etf-oglasi/README.md
T
ksan ce01ab763c
CI/CD / Backend Unit Tests (push) Successful in 3m16s
CI/CD / Deploy (push) Successful in 2m45s
CI/CD / Mobile Release (push) Has been cancelled
added app icon and readme
2026-07-30 15:12:17 +02:00

48 lines
1.3 KiB
Markdown

# ETF Oglasi
<img src="logo.png" alt="ETF Oglasi logo" width="150" />
A hobby full-stack project I built to learn modern app development end to end.
It scrapes the announcement boards of the Faculty of Electrical Engineering,
University of Banja Luka, stores the announcements in PostgreSQL, and lets
students browse and subscribe to subjects from a mobile app. Subscribers get
push notifications when new announcements are posted.
## Tech Stack
- **Backend:** Spring Boot 3.5 (Java 21), REST API, PostgreSQL
- **Frontend:** React Native / Expo (Expo Router, NativeWind)
- **Notifications:** Firebase Cloud Messaging
- **Tooling:** Docker, Gitea Actions for CI/CD, deployed to a self-hosted home server
## Project Structure
- `backend/` — Spring Boot REST API and the scraper
- `frontend/` — Expo mobile app
## Backend
```bash
cd backend
cp src/main/resources/application.properties.example src/main/resources/application.properties # fill in datasource + jwt.secret
docker compose up -d # local Postgres
./gradlew bootRun
```
Run tests: `./gradlew test`
## Frontend
```bash
cd frontend
npm install
# set EXPO_PUBLIC_API_URL in .env to the backend base URL
npm start
```
## Status
Semi-actively developed as a learning project. It is an app I actually use, and
maybe others will find it useful too.