Is a software that helps businesses to easily track communications between customer service agents and clients.It uses REDIS
to store data(issues submitted by clients). It is integrated with a chat developed using socketIO
. This Project comes with apython(Flask) API
and a Vue,Vite Application
.The user interface was built using tailwindCss
.
- As a client, you create an account or register.
- Access the dashboard
- Create an Issue(the issue will be added to a queue)
- On the customer service agent side.
- Login to the system.
- You will see a dashboard with a list of Issues to be attended.
- Those that are already being attended by other agents, will be indicated in red.
- Attend an issue with a green background.
- To attend an issue, click go to chat. It will redirect you to a chat where you can communicate with a client.
- The client will be notified when the issue is being attended.
- If an issue has been completed, it is CLOSED.
- If it is under investigation, it is ARCHIVED.
- Otherwise, it is left OPEN / in PROGRESS.
- On the dashboard, the client and the customer service agent will be able to see their issues -open,closed and archived.
We want to provide a simple way for customer representative agents to handle multiple clients at the same time seemlessly, using a chat and a queuing system.
- Storage of chat information - messages
- Storage of Issues
- Storage of user data
Wacky Wildcards
https://github.com/emacliam/REDIS-HACKERTHON---CRM
Javascript(Vue,js)
html
Tailwindcss
Python
Data is stored using RedisJSON
module in DB and RedisOM Python
as a client library
- Store (Add):
model_instance = ModelName(key1=value1, key2=value2, ..., keyN=valueN)
model_instance.save()
class Issue(EmbeddedJsonModel, JsonModel):
subject: Optional[Optional[str]] = Field(index=True)
description: Optional[str] = Field(index=True)
issue_status: Optional[str] = Field(index=True)
sender: Optional[str] = Field(index=True)
created_at: Optional[str] = Field(index=True)
record_status: Optional[str] = Field(index=True)
class Message(JsonModel):
issue: Optional[Optional[str]] = Field(index=True)
sender: Optional[str] = Field(index=True)
sender_data: User
issue_data: Issue
message_body: Optional[str] = Field(index=True)
class User(EmbeddedJsonModel, JsonModel):
first_name: Optional[str] = Field(index=True)
last_name: Optional[str] = Field(index=True)
role: Optional[str] = Field(index=True)
created_at: Optional[str] = Field(index=True)
record_status: Optional[str] = Field(index=True)
-
Get:
model_instance = ModelName.find((ModelName.field1=="value1")&(ModelName.field2=="value2"))
- to filterby field1's and field2's values. -
Update:
model_instance = ModelName().get(model_instance_id)
model_instance.field1 = new_value1
model_instance.field2 = new_value2
model_instance.fieldN = new_valueN
model_instance.save()
def get_users():
try:
users = User.find(User.record_status=="ALIVE").all()
users_list = []
for user in users:
user_dict = {}
for x in user:
user_dict[x[0]] = x[1]
users_list.append(user_dict)
return jsonify({
"status_code": "200",
"status": "success",
"message": "users_retrieved_ok",
"data": users_list
})
except:
traceback.print_exc()
return jsonify({
"status_code": "500",
"status": "error",
"message": "failed_to_retrieve_users",
"data": [],
})
- Prerequisites:
Python 3.8.2
- Local Installation Steps:
- clone repo
- access folder titled "CRM BACKEND"
- add ".env" file in the root directory of the project and add the line:
-> "REDIS_OM_URL=[URL_TO_REDIS_CLOUD]"
- create and activate virtual environment in the root directory using the command (on Windows 10 cmd):
-> "python -m venv [ENVIRONMENT_NAME]"
-> "[ENVIRONMENT_NAME]\scripts\activate"
-install project packages in the active environment using the command (on Windows 10 cmd):
-> "pip install -r requirements.txt"
-run flask API using the command (on Windows 10 cmd):
-> "flask run"
-it should give an output like:
* Debug mode: on
* Running on localhost:[PORT_NUMBER]
* Restarting with stat
* Debugger is active!
* Debugger PIN: [DEBUGGER_PIN]
- Prerequisites:
Node.js >= 14
- Local Installation Steps:
- clone repo
- access folder titled "CRM FRONTEND"
- run "YARN INSTALL"
- In the project folder, there is a file "config.js".change url to your backends server url.
- run "YARN DEV" to run the project
- To expose host on a network run with --host flag eg:"YARN DEV --host"
Node.js >= 14
Python 3.8.2
Redis Cloud Account
We recommend running this project Locally following the steps above
APACHE
Here some resources to help you quickly get started using Redis Stack. If you still have questions, feel free to ask them in the Redis Discord or on Twitter.
- Sign up for a free Redis Cloud account using this link and use the Redis Stack database in the cloud.
- Based on the language/framework you want to use, you will find the following client libraries:
- Redis OM .NET (C#)
- Watch this getting started video
- Follow this getting started guide
- Redis OM Node (JS)
- Watch this getting started video
- Follow this getting started guide
- Redis OM Python
- Watch this getting started video
- Follow this getting started guide
- Redis OM Spring (Java)
- Watch this getting started video
- Follow this getting started guide
- Redis OM .NET (C#)
The above videos and guides should be enough to get you started in your desired language/framework. From there you can expand and develop your app. Use the resources below to help guide you further:
- Developer Hub - The main developer page for Redis, where you can find information on building using Redis with sample projects, guides, and tutorials.
- Redis Stack getting started page - Lists all the Redis Stack features. From there you can find relevant docs and tutorials for all the capabilities of Redis Stack.
- Redis Rediscover - Provides use-cases for Redis as well as real-world examples and educational material
- RedisInsight - Desktop GUI tool - Use this to connect to Redis to visually see the data. It also has a CLI inside it that lets you send Redis CLI commands. It also has a profiler so you can see commands that are run on your Redis instance in real-time
- Youtube Videos
- Official Redis Youtube channel
- Redis Stack videos - Help you get started modeling data, using Redis OM, and exploring Redis Stack
- Redis Stack Real-Time Stock App from Ahmad Bazzi
- Build a Fullstack Next.js app with Fireship.io
- Microservices with Redis Course by Scalable Scripts on freeCodeCamp