DNS Discover Service
π Overview
DNS Discover Service is application for standard DNS server called BIND enabling dynamically loadable Zone files with Project and User management on the top of that. π
The app is written in Java, using Spring Framework on backend connected with PostgreSQL database. Following REST API fundamentals for easy extension the backend communicate on request/response base with frontend written in Angular.js.
Getting Started
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
Prerequisities
π₯ Things you need to install and run the app
- Java JDK 1.8 - Installation instructions
- Your favourite Java IDE - Try IntelliJ IDEA
- PostgreSQL Database Server - PostgreSQL
First running
- π» First head to
src/main/resources/application.properties
- β Setup your connection with database
#
# [ Database Configuration Section ]
#
spring.datasource.driverClassName=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://localhost:5432/dns
spring.datasource.username=postgres
spring.datasource.password=
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
- π₯ Hit run in your IDE
- π Head to
http://localhost:8888/[ENDPOINT]
User-Project Management
Roles
- β Watcher - Can view records related to project
- βοΈ Editor - Can view, edit and delete records related to project
- π Manager - Can view, edit and delete records related to project. Add and delete another users (watchers and editors) related to project. Create and delete projects.
- πͺ Admin - Can view, edit and delete all records in app. Add and delete another users (watchers, editors and managers) across whole app. Create and delete all projects.
π Short API documentation
The full documention will be created on Apiary.io
End-points
β Role
- GET List of Roles
roles/
- GET Detail of a specific Role
roles/{roleId}
- (POST Grant user access to project)
- (POST Revoke user access to project)
π DNS Record
- GET List of DNS Records
dnsrecords/
- GET Detail of DNS Record with assigned Project
dnsrecords/{dnsRecordId}
- POST Create a new DNS Record
dnsrecords/
- PUT Edit existing DNS Record
dnsrecords/{dnsRecordId}
- DELETE Delete selected DNS Record
dnsrecords/{dnsRecordId}
π Project
- GET List of Projects
projects/
- GET Detail of Project with its DNS Records
projects/{projectId}
- POST Create a new Project
projects/
- PUT Edit existing Project
projects/{projectId}
- DELETE Delete selected Project
projects/{projectId}
π¨ User
- GET List of users
users/
- GET Detail of user
users/{userId}
- POST Create a new user
users/
- PUT Edit existing user
users/{userId}
- DELETE Delete existing user
users/{userId}
π Auth
- POST Login user
- GET Logout
- (POST password/reset, POST password/email, GET password/reset/{token}, GET password/reseted) - not finished yet
Built With
- Spring Framework
- PostgreSQL
- Maven
- Bootstrap
- Tomcat
- Angular.js
Team
- Marek Dlugos - Database, API, Frontend App - Marek's web site
- Jakub Lecbych - Tests, Frontend App - Jakub's e-mail
Project was developed in cooperation with TeskaLabs.
License
This project is licensed under the Apache License - see the LICENSE.md file for details.