A comprehensive backend solution for managing key college operations and services.
SST Internal Tools is a modular Spring Boot application designed to streamline administrative processes and services in a college environment. Built with a clean, domain-driven architecture, the system provides RESTful APIs for various college functions including student accommodations, announcements, gallery management, mess services, transportation, and more.
The project follows a feature-based modular architecture with clear separation of concerns:
com.sstinternaltools.sstinternal_tools/
├── announcements/ # Campus-wide notification system
├── auth/ # Authentication and authorization
├── gallery/ # Media gallery management
├── hostel/ # Student accommodation management
├── jwt/ # JWT token implementation
├── mess/ # Dining services management
├── placement/ # Career services and recruitment
├── transport/ # Transportation services
└── user/ # User management and profiles
Each domain module maintains a consistent internal structure:
| Layer | Purpose |
|---|---|
controller |
REST API endpoints that handle HTTP requests |
dto |
Data Transfer Objects for API request/response handling |
facade |
Orchestration layer for complex operations across services |
mapper |
Conversion utilities between entities and DTOs |
repository |
Data access layer with JPA repositories |
service |
Business logic implementation |
entity |
Domain model objects (where applicable) |
- JDK 17 or higher
- Maven 3.6+
- Docker and Docker Compose
- IntelliJ IDEA (recommended)
-
Clone the repository
git clone https://github.com/your-org/sst-internal-tools.git cd sst-internal-tools -
Configure environment variables
Create a
.envfile in the project root with the following variables:# Database Configuration DATABASE_URL=jdbc:postgresql://localhost:5432/sst-internal-tools DATABASE_USER=sst DATABASE_PASSWORD=tools -
Start the database using Docker
docker-compose up -d
This will start a PostgreSQL instance with the configured credentials.
-
Build the project
./mvnw clean install
-
Run the application
./mvnw spring-boot:run
The server starts at
http://localhost:8080
The application exposes RESTful endpoints organized by domain:
POST /api/auth/login- Authenticate usersPOST /api/auth/register- Register new users
GET /api/announcements- List all announcementsPOST /api/announcements- Create new announcementGET /api/announcements/{id}- Get specific announcement
GET /api/hostel/rooms- List available roomsPOST /api/hostel/application- Submit accommodation request
GET /api/mess/menu- Get current menuPOST /api/mess/feedback- Submit meal feedback
Note: Complete API documentation with Swagger/OpenAPI will be available at /swagger-ui.html in future releases.
- Spring Boot - Application framework
- Spring Data JPA - Data persistence
- Spring Security - Authentication and authorization
- PostgreSQL - Primary database
- JWT - Token-based authentication
- Docker - Containerization
- Maven - Dependency management
- JUnit & Mockito - Testing framework
Run the test suite:
./mvnw testThe project uses environment variables for configuration, which provides several benefits:
- Security: Sensitive information like database credentials stays out of version control
- Environment-specific settings: Easily switch between development, testing, and production environments
- Containerization support: Seamless integration with Docker and cloud platforms
Key configuration files:
docker-compose.yaml- Defines the PostgreSQL serviceapplication.properties- Core application settings using environment variables.env- Local environment variable definitions (not committed to version control)
- Project Manager: Mrinal Bhattacharya
- Developers: Arnav Gupta, Vivek Singh Solanki, Srinidhi Naren, Rudray Mehra
We welcome contributions to the SST Internal Tools project. To maintain code quality:
- Follow naming conventions and project structure
- Write unit tests for new functionality
- Document your code with appropriate comments
- Submit a pull request for review
- Use consistent indentation (4 spaces)
- Follow Java naming conventions
- Keep methods focused and concise
- Document public APIs with Javadoc
- Write meaningful commit messages
This project is proprietary software for internal use only.
- API Documentation: Implement Swagger/OpenAPI
- Authentication Enhancements: OAuth2 integration
- Monitoring: Add Actuator endpoints
- Caching: Implement Redis for improved performance
- CI/CD Pipeline: Automated testing and deployment
- Container Orchestration: Kubernetes deployment configuration
For any questions or support, please contact the project maintainers.