This is a full-stack document management system integrated with LDAP (Active Directory) for authentication and role-based authorization. It allows users to upload, manage, and restrict access to files based on their LDAP groups.
- Backend: Java 21, Spring Boot, Spring Security LDAP, Spring Data JPA
- Frontend: Angular, TailwindCSS
- Database: PostgreSQL (Dockerized)
- Java 21 or higher
- Node.js (v18+)
- Docker & Docker Compose (For PostgreSQL)
- Maven (or use the provided
mvnwwrapper)
For security reasons, the actual application.properties file containing LDAP credentials and database secrets is ignored by Git.
- Navigate to
Back/demo/src/main/resources/ - Duplicate the file
application.properties.exampleand rename it toapplication.properties. - Open
application.propertiesand replace the placeholder values with your actual LDAP Server IP, Admin credentials, and Domain details.
The project uses PostgreSQL for storing document metadata, folder hierarchies, and permissions.
- Open a terminal in
Back/demo/ - Run the following command to start the database container:
docker-compose up -d
(Note: Actual files are saved on the local disk inside the uploads/ folder, which is ignored by Git. Only file metadata goes into the database).
- Open a terminal in
Back/demo/ - Build and run the project:
(The API will be available at http://localhost:8080)
mvn spring-boot:run
- Open a terminal in
Front/ldap-frontend/ - Install dependencies:
npm install
- Start the Angular development server:
(The application will be available at http://localhost:4200)
ng serve
.gitignoreis strictly configured to prevent the upload ofapplication.properties, uploaded user files (uploads/), and database volumes (postgres_data/).- Do not commit your real LDAP passwords or sensitive domain structures.