Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/neo945/crm
Last synced: 4 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/neo945/crm
- Owner: Neo945
- Created: 2022-06-16T09:11:52.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2022-06-30T10:43:10.000Z (over 2 years ago)
- Last Synced: 2024-11-10T08:26:16.326Z (2 months ago)
- Language: Python
- Size: 1010 KB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# CRM API
Customer relationship manager
- It manages all your company's relationships and interactions with customers and potential customers.
- It is used to manage customer relationships across the entire customer lifecycle, spanning marketing, sales, presales, operations and customer service interactions## Manual Installation
Clone the repo:
```bash
git clone --depth 1 https://github.com/neo945/CRM CRM
```Create Virtual Environment:
```bash
pip install virtualenv
python -m virtualenv venv
```Activate Virtual Environment:
Windows:
```bash
.\venv\Scripts\activate
```Linux:
```bash
source venv/bin/activate
```Install the dependencies:
```bash
pip install -r requirements.txt
```## Table of Contents
- [CRM api](#crm-api)
- [Manual Installation](#manual-installation)
- [Table of Contents](#table-of-contents)
- [Features](#features)
- [Commands](#commands)
- [Environment Variables](#environment-variables)
- [Project Structure](#project-structure)
- [API Documentation](#api-documentation)
- [API Endpoints](#api-endpoints)## Technologies
- **SQL database**: [SQLite3](https://www.mongodb.com) object data modeling using [Django ORM](https://mongoosejs.com)
- **Authentication and authorization**: using [Django Session](http://www.passportjs.org) and [Cookie Storage](https://www.npmjs.com/package/jsonwebtoken)
- **Logging**: using [Django Loggings](https://github.com/winstonjs/winston) and [morgan](https://github.com/expressjs/morgan)
- **Testing**: using [PostMan](https://jestjs.io)
- **Process management**: advanced production process management using [PM2](https://pm2.keymetrics.io)
- **Environment variables**: using [dotenv](https://github.com/motdotla/dotenv) and [cross-env](https://github.com/kentcdodds/cross-env#readme)
- **CORS**: Cross-Origin Resource-Sharing enabled using [django-cors-headers](https://github.com/expressjs/cors)
- **CI/CD**: continuous integration with [GitHub Actions](https://travis-ci.org)
- **Docker support**## Commands
Running locally:
```bash
python manage.py runserver
```Testing:
```bash
python manage.py test
```## Environment Variables
The environment variables can be found and modified in the `.env` file. They come with these default values:
```bash
# Ḍjango secret key
SECRET_KEY=# Email SMTP server to send email
EMAIL_SERVICE=# User email to send email from
USER_EMAIL=# User email passeword
USER_PASSWORD=# Linkedin email
LINKEDIN_EMAIL=
# Linkedin email
LINKEDIN_PASSWORD=# Encryption key
KEY=# AWS IAM access key to S3 bucket
AWS_SECRET_ACCESS_KEY=
AWS_ACCESS_KEY_ID=
AWS_STORAGE_BUCKET_NAME=
AWS_S3_REGION_NAME=
```## Project Structure
```
.\
|--crm\ # Main Django application directory
|--accounts\ # Account application directory (Login and registration)
|--customers\ # Customer application directory (Customer and client)
|--leads\ # Customer application directory (Main business leads)
|--logs\ # Logged data
|--cmrcss\ # CMRCSS application directory (Customer feedback)
|--forntend\ # React Js Frontend
|--requirements.txt\ # Dependencies
```### API Endpoints
List of available routes:
**Account routes**:
`POST /api/v1/accounts/register/` - Register a new user\
`POST /api/v1/accounts/login/` - Login a user\
`POST /api/v1/accounts/update/password/` - Update password of a user\
`GET /api/v1/accounts/logout/` - Logout a user\
`GET /api/v1/accounts/get/` - Get logged user\_Company routes_:
`POST /api/v1/accounts/create/company/` - Create a new company\
`GET /api/v1/accounts/company/` - Get a company by id\
`GET /api/v1/accounts/search/company?str=search_string` - Search companies by name\_Job routes_:
`POST /api/v1/accounts/create/job/` - Create a job\
`GET /api/v1/accounts/job/` - Get a job by id\
`GET /api/v1/accounts/search/job?str=search_string` - Search job by name\**Feedback routes**:
`POST /api/v1/cmrcss/feedback/` - User feedback\
**Customer routes**:
`POST /api/v1/customer/create/customer` - Create a customer\
`GET /api/v1/customer/get/` - Get a customer by id\
`GET /api/v1/customer/add/customer//job/` - Add a customer to a job\
`GET /api/v1/customer/get/job/` - Get a customer by job id\_Customer routes_:
`GET /api/v1/customer/get/client/job/` - Get a client by job id\
`GET /api/v1/customer/get/client/` - Get a customer by id\**Leads routes**:
`GET /api/v1/leads/create/lead/customer/` - Create a leads\
`GET /api/v1/leads/lead/` - Get a lead by id\
`GET /api/v1/leads/lead/job/` - Get all leads by job id\
`GET /api/v1/leads/lead/moved/job/` - Get all checked leads by job id\
`GET /api/v1/leads/lead/not/moved/job/` - Get all unchecked leads by job id\_Marketing leads routes_:
`POST /api/v1/create/market/` - Create a marketing leads\
`POST /api/v1/create/market/` - Create all marketing leads\
`GET /api/v1/leads/market/` - Get marketing lead by id\
`POST /api/v1/leads/market/` - Get all marketing lead by id\
`POST /api/v1/leads/market/` - Get all marketing lead by id\
`POST /api/v1/leads/market/moved/` - Get all checked marketing lead by id\
`POST /api/v1/leads/market/not/moved/` - Get all unchecked marketing lead by id\
`GET /api/v1/leads/market/job/` - Get all marketing leads by job id\
`GET /api/v1/leads/market/moved/job/` - Get all checked marketing leads by job id\
`GET /api/v1/leads/market/not/moved/job/` - Get all unchecked marketing leads by job id\_Sales leads routes_:
`POST /api/v1/leads/create/sales/` - Create a sales leads\
`POST /api/v1/leads/create/sales/` - Create all sales leads\
`GET /api/v1/leads/sales/` - Get sales lead by id\
`POST /api/v1/leads/sales/` - Get all sales lead by id\
`POST /api/v1/leads/sales/moved/` - Get all checked sales lead by id\
`POST /api/v1/leads/sales/not/moved/` - Get all unchecked sales lead by id\
`GET /api/v1/leads/sales/job/` - Get all sales leads by job id\
`GET /api/v1/leads/sales/moved/job/` - Get all checked sales leads by job id\
`GET /api/v1/leads/sales/not/moved/job/` - Get all unchecked sales leads by job id\_Presales leads routes_:
`POST /api/v1/create/presales/` - Create a presales leads\
`POST /api/v1/create/presales/` - Create all presales leads\
`GET /api/v1/leads/presales/` - Get presales lead by id\
`POST /api/v1/leads/presales/` - Get all presales lead by id\
`POST /api/v1/leads/presales/moved/` - Get all checked presales lead by id\
`POST /api/v1/leads/presales/not/moved/` - Get all unchecked presales lead by id\
`GET /api/v1/leads/presales/job/` - Get all presales leads by job id\
`GET /api/v1/leads/presales/moved/job/` - Get all checked presales leads by job id\
`GET /api/v1/leads/presales/not/moved/job/` - Get all unchecked presales leads by job id\_Operations leads routes_:
`POST /api/v1/create/operation/` - Create a operation leads\
`POST /api/v1/create/operation/` - Create all operation leads\
`GET /api/v1/leads/operation/` - Get operation lead by id\
`POST /api/v1/leads/operation/` - Get all operation lead by id\
`POST /api/v1/leads/operation/moved/` - Get all checked operation lead by id\
`POST /api/v1/leads/operation/not/moved/` - Get all unchecked operation lead by id\
`GET /api/v1/leads/operation/job/` - Get all operation leads by job id\
`GET /api/v1/leads/operation/moved/job/` - Get all checked operation leads by job id\
`GET /api/v1/leads/operation/not/moved/job/` - Get all unchecked operation leads by job id\_Clients leads routes_:
`GET /api/v1/leads/create/client/operation//job/` - Create client from operations lead\
`GET /api/v1/leads/create/client/job/` - Create all client from operations lead\Feel free to contribute