User web interface for starting new customer relationship management system with scala seed project.
Almost every customer relationship management (CRM) software in different domains usually require to develop functions for managing customer contacts as part of it. These functions include create, edit, share customer information, grouping contacts with categories and filtering with some criteria, user access management to contacts inside software, etc. Proposed project could be used as seed project for building fully functional CRM software.
Project has a multilayer architecture with loosely coupled layers, which allows easy to change the behaviors of each layer without significant changes in others. In such design, there is no big deal to change UI presentation, or to add custom behaviour to data model dictated by business-logic, or to modify access to data storage. It was designed with the thought of being ready to customisations.
Project consists of two major parts: back end written with Scala and Play Framework as RESTful service, and web-UI developed as one page web app on Angular.
Application:
Originally CRM refers to practices, strategies and technologies that companies use to manage and analyse customer interactions and data throughout the production lifecycle, with the goal of improving business relationships with customers, assisting in customer retention and driving sales growth. CRM software consolidates customer information and documents into a single CRM database so business users can more easily access and manage it. An integral part of every CRM is management of customer information.
Project contains all typical use cases for user management and customer management.
User management panel contains:
- user authorisation
- users list
- user invitation
- user activation/deactivation
Contacts panel contains:
- create/edit/delete contact
- filter/search contacts
- group/ungroup contacts
Go to Server project for instructions (link).
Require Node 6.9.0 or higher, together with NPM 3 or higher.
Run npm install
in project directory for installing all needed dependencies.
Server part of application is dockerized.
Run docker-compose
with docker-compose-dev.yml
compose file:
$ docker-compose --file docker-compose-dev.yml up
Run application UI with:
$ npm run start
Application will be started at localhost:4200
Default admin account:
email: admin
password: admin
UI use HTTP request to the server for data interaction with json.
Full list of services can be found in appropriate <service_name>.service.ts
files.
After running UI docker container you can access development documentation like:
https://localhost/documentation
We are welcomes questions via our issues tracker. We also greatly appreciate fixes, feature requests, and updates; before submitting a pull request, please visit contributor guidelines. For issues list look at the crm-seed project.
This project is licensed under the Apache 2.0 License - see the LICENSE file for details