Modern school website with an Angular frontend and a Spring Boot backend. It provides public pages (home, facilities, gallery, notices, fees, contact) and an admin area for managing content such as student registrations and notices.
- Clean Angular UI: Responsive pages for key school information.
- Spring Boot API: Secure endpoints for notices, students, and fees.
- Email support: Pluggable email service for notifications (configurable).
- Production-ready structure: Separate
frontend/andbackend/apps.
- Frontend: Angular, TypeScript, SCSS
- Backend: Spring Boot, Spring Security, Spring Data JPA
- Build/Tools: Maven, Node.js, npm
backend/ # Spring Boot project (API)
frontend/ # Angular application (web)
- Node.js 18+ and npm
- Java 17+ (LTS) and Maven 3.9+
- Git
cd backend
mvn clean package
# Run locally
mvn spring-boot:run
# or using the built jar (after package)
java -jar target/schoolweb-backend-0.0.1-SNAPSHOT.jarBackend defaults can be configured in backend/src/main/resources/application.properties (datasource, mail, security, etc.).
Common endpoints (examples):
GET /health– health checkGET /notices– list noticesPOST /notices– create noticeGET /students– list studentsPOST /students/register– register a studentGET /fees– list fees
Security specifics (auth roles, login flow) are defined in backend/src/main/java/com/praswkrit/school/config/SecurityConfig.java.
cd frontend
npm ci
npm start
# Angular will serve at http://localhost:4200Build for production:
npm run buildOutput will be in frontend/dist/.
- Backend:
backend/src/main/resources/application.properties- Database URL/credentials (if using an external DB)
- Mail settings for
EmailService - CORS and security settings
- Frontend: update API base URLs or environment values in
frontend/src/environments(add as needed if not present) or in services using HTTP. - Assets: gallery images and manifest under
frontend/src/assets/school/gallery/.
Backend:
mvn spring-boot:run– run API in dev modemvn test– run backend tests
Frontend:
npm start– start dev servernpm run build– production buildnpm test– run unit tests (if configured)
- The gallery uses a
manifest.jsonto manage image metadata infrontend/src/assets/school/gallery/. - For admin-only features, ensure proper roles are configured in the backend security config.
- If serving frontend and backend from different origins in dev, configure CORS on the backend.
You can deploy the frontend build output to any static hosting provider. The backend runs as a standard Spring Boot service (jar or container). Typical options:
- Frontend: Netlify, Vercel, S3+CloudFront, static Nginx
- Backend: Any JVM-friendly platform (VM, Docker/Kubernetes, Heroku-like services)
- Create a feature branch:
git checkout -b feature/your-change - Commit your changes:
git commit -m "feat: describe change" - Push to the branch:
git push origin feature/your-change - Open a Pull Request
UNLICENSED – replace with your preferred license (e.g., MIT) if desired.
For questions or support, please open an issue on the repository.