lumi2/README.md

51 lines
2.4 KiB
Markdown

# Lumi2 (LDAP user management interface)
**Lumi2** is a web application for managing users and user groups present on an OpenLDAP server.
It provides a web-interface for administrators to create/read/update/delete organization users and user groups, and to allow basic account self-service for organization members themselves.
Lumi is written in Python, using the [Flask](https://flask.palletsprojects.com/en/latest/) web framework.
The motivation for Lumi is for it to provide a more user-friendly interface than [PhpLdapAdmin](https://phpldapadmin.sourceforge.net/wiki/index.php/Main_Page), however it is not a replacement.
# Documentation
The following frameworks and/or libraries are used:
- Backend:
- [Flask](https://flask.palletsprojects.com/en/2.2.x/) - a python web framework
- [WTForms](https://wtforms.readthedocs.io/en/3.0.x/) - a python library for web form handling
- [FlaskWTF](https://flask-wtf.readthedocs.io/en/1.0.x/) - an extension to WTForms specific to Flask
- [flask-restful](https://flask-restful.readthedocs.io/en/latest/quickstart.html) - a minimalistic library for Flask to build RESTful web APIs
- [ldap3](https://ldap3.readthedocs.io/en/latest/) - python bindings for interaction with LDAP servers
- [pytest](https://docs.pytest.org/en/7.2.x/) - a python testing framework
- [coverage](https://coverage.readthedocs.io/en/6.5.0/) - test code coverage reporting used in conjunction with pytest
- [Pillow](https://pillow.readthedocs.io/en/stable/) - a python image manipulation library
- Frontend:
- [Bootstrap 5](https://getbootstrap.com/docs/5.2/getting-started/introduction/) - a CSS framework
- [Bootstrap Icons](https://icons.getbootstrap.com/) - an SVG-icon pack used in conjunction with Bootstrap
- [jQuery](https://api.jquery.com/) - a JavaScript library for DOM manipulation and AJAX routines
- [jQuery tablesorter plugin](https://mottie.github.io/tablesorter/docs/) - a plugin for jQuery used to make sortable HTML tables
## Compiling SASS
Install a SASS preprocessor:
```bash
npm install -g sass
```
Process the custom SASS files:
```
sass scss/bootstrap.scss lumi2/static/css/bootstrap.css
```
# Testing
Make sure all dependencies listed in `requirements.txt` are installed.
To run all unit tests, simply run the following from within the repository root:
```bash
coverage run -m pytest && coverage report
```
This will run all unit tests and display the test coverage in your terminal.