This repository contains the source code and documentation for the "Sri-Care" web portal and smartphone apps developed as part of the Middleware Architectures course [IS3108/SCS3203] Assignment 2.
Sri-Care is a customer care solution for Sri Tel Ltd (STL), a telecommunications company in Sri Lanka. The solution aims to improve customer experience by offering services through a web portal and mobile apps (iOS and Android) that allow users to manage services, view and pay bills, receive notifications, and chat with customer care agents.
-
Account Creation & Management:
- Secure online account registration for existing customers.
- Password recovery and change options.
-
Service Management:
- Activate or deactivate telco services like international roaming, data top-ups, and other value-added services (VAS).
-
Billing & Payments:
- View current and past bills.
- Make online payments using credit/debit cards through an external payment gateway.
-
Notifications:
- Receive email/SMS/push alerts on bills, service issues, and disconnections.
- Alerts are managed in a way that does not disrupt the system's performance during peak times.
-
Customer Care Chat:
- An architecture for an instant messaging system between customers and care agents.
The solution leverages middleware architecture to implement RESTful services for core functionalities, including:
- Provisioning System: Exposes RESTful APIs to manage telco services.
- Payment Gateway: Handles secure credit/debit card payments.
While only a minimal prototype is implemented, the architecture is designed to scale for web and mobile platforms (iOS and Android).
- Frontend: HTML, CSS, JavaScript
- Backend: Java, Spring Boot
- Database: PostgreSQL, MongoDB
- Messaging: Kafka, Zookeeper
- Other Services: PgAdmin, Mongo Express, MailDev
- Containerization: Docker, Docker Compose
The project is divided into several microservices, each running in its own Docker container:
- PostgreSQL: Relational database for storing structured data.
- PgAdmin: Web-based interface for managing PostgreSQL databases.
- MongoDB: NoSQL database for storing unstructured data.
- Mongo Express: Web-based interface for managing MongoDB databases.
- Zookeeper: Centralized service for maintaining configuration information and providing distributed synchronization.
- Kafka: Distributed messaging system for building real-time data pipelines and streaming applications.
- MailDev: SMTP server for development and testing of email sending.
- Frontend: Nginx server serving the static HTML/CSS/JavaScript files.
To set up and run the project, follow these steps:
-
Clone the repository:
git clone <repository-url> cd sricareweb
-
Create a
.envfile in the root directory and add the following environment variables:PGADMIN_DEFAULT_EMAIL=pgadmin4@pgadmin.org PGADMIN_DEFAULT_PASSWORD=admin
-
Run Docker Compose:
docker-compose up
-
Access the services:
- Frontend: http://localhost:6203
- PgAdmin: http://localhost:5050
- Mongo Express: http://localhost:8081
- MailDev: http://localhost:1080
The docker-compose.yml file defines the configuration for all the services. Key points include:
- Volumes: Persistent storage for PostgreSQL and MongoDB data.
- Networks: Bridge network for inter-service communication.
- Ports: Port mappings for accessing services from the host machine.
-
PostgreSQL:
- Username:
postgres - Data Directory:
/data/postgres
- Username:
-
MongoDB:
- Root Username:
root - Data Directory:
/data
- Root Username:
-
Kafka:
- Zookeeper Connection:
zookeeper:2181 - Advertised Listeners:
PLAINTEXT://localhost:9092
- Zookeeper Connection:
This project is licensed under the MIT License.
- B.D.I.C. Wanigarathne - 2100261
- P.R.C.K. Polgampala - 21001391
- S.R. Nagahawatta - 21001243
- P.L.R. Sathnindu - 21001774
- W.G.L. Geesilu - 21000702
- D W DE HOEDT - 21000379
