Skip to content

vaassi/addressbook

Repository files navigation

AddressBook

Centralized endpoint for storing users contacts.

Active Directory attributes that app is looking for:

  • "name"
  • "employeeNumber"
  • "mail"
  • "telephoneNumber"
  • "mobile"
  • "birthdate" (custom attribute)
  • "company"
  • "department"
  • "title"
  • "c"
  • "postalCode"
  • "st"
  • "l"
  • "streetAddress"

Main window

AddressBook

Details window

AddressBook

Here's why

  • Easy installation (standalone binary, docker)
  • Cross-platform
  • Integrated with Active Directory
  • Search autocomplete
  • Favorite list
  • Birthday indication

Built With

  • WebAssemply
  • Bootstrap
  • JQuery

Getting Started

To get a local copy up and running follow these simple steps.

Prerequisites

  • Installing Rust
    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  • Install WebAssembly target
    rustup target add wasm32-unknown-unknown
  • Fix for OpenSSL trunk (windows)
    mkdir \Tools
    cd \Tools
    git clone https://github.com/Microsoft/vcpkg.git
    cd vcpkg
    .\bootstrap-vcpkg.bat
    .\vcpkg.exe install openssl:x64-windows-static
    
    $env:OPENSSL_DIR = 'C:\Tools\vcpkg\installed\x64-windows-static'
    $env:OPENSSL_STATIC = 'Yes'
    [System.Environment]::SetEnvironmentVariable('OPENSSL_DIR', $env:OPENSSL_DIR, [System.EnvironmentVariableTarget]::User)
    [System.Environment]::SetEnvironmentVariable('OPENSSL_STATIC', $env:OPENSSL_STATIC, [System.EnvironmentVariableTarget]::User)
  • Install Trunk, Make
    cargo install trunk
    cargo install cargo-make

Installation

  1. Clone the repo
    git clone https://github.com/vaassi/addressbook.git
  2. Create .env file base on .env.example
  3. Run cargo-make
    cargo make
  4. Copy in separate folder ./target/release/addressbook.exe, static folder, .env file
  5. Create assets folder in static dir and put contacts photo base on employeeNumber attribute, f.e. 12345.jpg
  6. Start addressbook.exe go to http://your_url/api/sync for initial synchronization, wait till get success, this url must be added to cron with schedule you want

For Docker users

docker build -t addressbook:0.1.0 .
docker run -d --name addressbook --env-file=.env \
  -p 3000:3000 \
  -v ./data/data.sqlite:/opt/app/data.sqlite \
  -v ./data/assets:/opt/app/static/assets \
  vaassi/addressbook:0.1.0

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the MIT License. See LICENSE.txt for more information.

About

Publish your company Active Directory users information as an address book

Topics

Resources

License

Stars

Watchers

Forks

Languages