Multi user address book application
Project description
icemac.addressbook
Purpose: Store, search and export addresses and phone numbers using a web application.
Status: stable version, used in production; some features might be added in future (See To do)
Features
General
multi-client capability
user and role management
Completely translated into German, and easily translateable into other languages.
Optimized for the following browsers: Firefox, Safari. IE works but might look ugly. (Mobile version of Safari has some glitches.)
Data
store data of persons including postal address, e-mail address, home page address, phone number and files
add data fields to persons and addresses using the user interface
ability to change the oder of the fields of persons and adresses
assign keywords to persons
import data from XLS (Excel) or CSV files
Search & Export
search for persons by keywords and names
export persons found using a search as XLS file
update a single field of multiple persons as returned by a search (multi-update)
Technical
really good test coverage of program code (> 98 %)
data storage is an object database (ZODB) so no additional database is required
Screenshots
See SourceForge.
Hacking
Fork me on: https://bitbucket.org/icemac/icemac.addressbook
See Source installation, too.
Installation
Prerequisites
You only need Python 2.7.x.
Other Python versions are currently not supported.
For a smooth installation ensure your Python installation is clean by
either compiling your own Python 2.7 from the source code
or by creating a virtualenv.
There are two variants for installation:
Package installation (to be preferred)
Source installation (for development)
Package installation
Follow these steps if you want to install the pre-packaged address book (preferred way):
First installation
CAUTION: icemac.addressbook can’t be installed using easy_install or pip, you have to follow these simple steps.
Neither you need any root privileges nor it installs anything outside its directory.
Download the source distribution (see Download).
Extract the downloaded file.
Run install.py using your desired python, e. g.:
$ python2.7 install.py
Answer the questions about admin user name, password and so on.
Run the tests. See Run the tests
Start the application. See Run the application
Update
If you are updating from version 0.x get the latest 1.x version from PyPI and follow the update procedure described there in INSTALL.rst.
If you are updating from version 1.x or newer follow these steps:
1. Download and extract the source distribution (see Download) to a new a directory.
2. Run install.py using your desired python added by the path to the previous installation. This way values you entered previously are used as defaults instead of the application defaults. Example:
$ python2.7 install.py ../icemac.addressbook-1.10.6
Answer the questions about admin user name, password and so on.
Start the new instance of the application.
Source installation
Get the source code:
$ hg clone https://bitbucket.org/icemac/icemac.addressbook
Install the sources:
$ cd icemac.addressbook $ printf "[buildout]\nextends = profiles/%s\n" dev.cfg > buildout.cfg $ python2.7 bootstrap.py $ bin/buildout
Run the tests
Running the tests is independent from your choosen installation kind.
Unit tests and functional tests
Run the unit tests and functional tests using:
$ bin/test
Selenium tests
To run the Selenium tests you additionally need:
Selenium Server from SeleniumHQ
Firefox with a version between 7 and 17 (newer versions lead to test errors!)
Run the tests following these steps:
set the variable GOCEPT_SELENIUM_BROWSER like this:
$ export GOCEPT_SELENIUM_BROWSER='*firefox <Path to Firefox binary>'
start the server:
$ java -jar <Path to Selenium Server jar>
run all tests using:
$ bin/test --all
Run the application
Running the application is independent from your choosen installation kind.
To run the application instance in foreground start using:
$ bin/addressbook fg
To run it as a demon process start using:
$ bin/addressbook start
To stop the demon process call:
$ bin/addressbook stop
The default URL is to access the application is:
http://127.0.0.1:8080
To log-in at this URL you need a username and password.
If you installed via package installation you had to chose them when running install.py. They are stored in admin.zcml.
If you installed the sources you find username and password in dev_admin_user.zcml.
Create a new address book using the add address book link on the right. How to create new users inside this address book is described in Create new users.
Change configuration of the installation
This section is only valid if you chose package installation.
The values you entered during installation resp. update are stored in a file named install.user.ini in the address book directory.
To change the configuration values call install.py using python and enter a . as parameter like this:
$ python2.7 install.py .
The configuration questions get presented to you with your previously entered values as default.
To remove additional packages you have to edit the [package] section of install.user.ini. There is currently no other way for removal.
To remove the user name which should own the process you have to edit the [server] section of install.user.ini. Remove the value from the user line.
User management
Roles
Access to the address book is only granted after authentication. There are three roles to authorize a user:
visitor: visit all person’s data, search and export, change own password
editor: permissions of visitor + edit all person’s data, change own log-in name
administrator: permissions of editor + create and change address book and users
Create new users
Users are persons from the address book augmented by log-in information.
To create the first new user inside an address book the adminstrator (who was created in First installation) has to log-in and then do the following:
create a new person with an e-mail address using Add person.
create a new user using Master data –> Users –> Add user.
The newly created user has now a log-in (e-mail address) for the address book the person belonges to.
To do
Next version
Probably: Full text search.
Longer term
The following features might be implemented over the next months:
person data
store picture per person
company as entity (?)
import
vCard
SQLite (Apple’s Addressbook.app)
export
custom XLS export
LDAP export
more search abilities
full text search
combined search
wildcard search
Change log
2.3.0 (2014-02-08)
Refactoring: Add option to add a query string to the URL in url method.
Refactoring: Allow additional packages to register their roles to be handled like Editor or Visitor thus allowing them to change their username and/or password.
2.2.0 (2014-01-02)
Refactoring: Added session property to BaseView to ease session access.
2.1.0 (2013-12-31)
Feature: Add ability to set start page for all users in master data section. It is shown after a user has logged in. (It no longer needs to be the welcome page introduced in version 1.10.)
Previous Versions
See OLD_CHANGES.rst inside the package.
Download
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.