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.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
💥 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 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]
- ✋ 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.
The full documention will be created on Apiary.io
- 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)
- 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}
- 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}
- 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}
- POST Login user
- GET Logout
- (POST password/reset, POST password/email, GET password/reset/{token}, GET password/reseted) - not finished yet
- Spring Framework
- PostgreSQL
- Maven
- Bootstrap
- Tomcat
- Angular.js
- 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.
This project is licensed under the Apache License - see the LICENSE.md file for details.