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.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src/main
.gitignore
API.md
LICENSE.md
pom.xml
readme.md
screenshot.png

readme.md

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.

DNS Discover Service Screenshot

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

First running

  1. 💻 First head to src/main/resources/application.properties
  2. 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

  1. 🔥 Hit run in your IDE
  2. 🎉 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

Project was developed in cooperation with TeskaLabs.

License

This project is licensed under the Apache License - see the LICENSE.md file for details.

Acknowledgments

Inspiration