{"id":19372070,"url":"https://github.com/neo945/crm","last_synced_at":"2025-10-08T06:45:59.546Z","repository":{"id":85534738,"uuid":"504087801","full_name":"Neo945/CRM","owner":"Neo945","description":null,"archived":false,"fork":false,"pushed_at":"2022-06-30T10:43:10.000Z","size":1031,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-12T00:08:32.579Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Neo945.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-06-16T09:11:52.000Z","updated_at":"2022-06-30T10:45:01.000Z","dependencies_parsed_at":"2023-06-14T16:15:36.415Z","dependency_job_id":null,"html_url":"https://github.com/Neo945/CRM","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Neo945/CRM","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Neo945%2FCRM","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Neo945%2FCRM/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Neo945%2FCRM/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Neo945%2FCRM/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Neo945","download_url":"https://codeload.github.com/Neo945/CRM/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Neo945%2FCRM/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278903011,"owners_count":26065786,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-08T02:00:06.501Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-10T08:21:26.802Z","updated_at":"2025-10-08T06:45:59.510Z","avatar_url":"https://github.com/Neo945.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CRM API\n\nCustomer relationship manager\n\n- It manages all your company's relationships and interactions with customers and potential customers.\n- It is used to manage customer relationships across the entire customer lifecycle, spanning marketing, sales, presales, operations and customer service interactions\n\n## Manual Installation\n\nClone the repo:\n\n```bash\ngit clone --depth 1 https://github.com/neo945/CRM CRM\n```\n\nCreate Virtual Environment:\n\n```bash\npip install virtualenv\npython -m virtualenv venv\n```\n\nActivate Virtual Environment:\n\nWindows:\n\n```bash\n.\\venv\\Scripts\\activate\n```\n\nLinux:\n\n```bash\nsource venv/bin/activate\n```\n\nInstall the dependencies:\n\n```bash\npip install -r requirements.txt\n```\n\n## Table of Contents\n\n- [CRM api](#crm-api)\n  - [Manual Installation](#manual-installation)\n  - [Table of Contents](#table-of-contents)\n  - [Features](#features)\n  - [Commands](#commands)\n  - [Environment Variables](#environment-variables)\n  - [Project Structure](#project-structure)\n  - [API Documentation](#api-documentation)\n    - [API Endpoints](#api-endpoints)\n\n## Technologies\n\n- **SQL database**: [SQLite3](https://www.mongodb.com) object data modeling using [Django ORM](https://mongoosejs.com)\n- **Authentication and authorization**: using [Django Session](http://www.passportjs.org) and [Cookie Storage](https://www.npmjs.com/package/jsonwebtoken)\n- **Logging**: using [Django Loggings](https://github.com/winstonjs/winston) and [morgan](https://github.com/expressjs/morgan)\n- **Testing**: using [PostMan](https://jestjs.io)\n- **Process management**: advanced production process management using [PM2](https://pm2.keymetrics.io)\n- **Environment variables**: using [dotenv](https://github.com/motdotla/dotenv) and [cross-env](https://github.com/kentcdodds/cross-env#readme)\n- **CORS**: Cross-Origin Resource-Sharing enabled using [django-cors-headers](https://github.com/expressjs/cors)\n  - **CI/CD**: continuous integration with [GitHub Actions](https://travis-ci.org)\n- **Docker support**\n\n## Commands\n\nRunning locally:\n\n```bash\npython manage.py runserver\n```\n\nTesting:\n\n```bash\npython manage.py test\n```\n\n## Environment Variables\n\nThe environment variables can be found and modified in the `.env` file. They come with these default values:\n\n```bash\n# Ḍjango secret key\nSECRET_KEY=\u003cSECRET_KEY\u003e\n\n# Email SMTP server to send email\nEMAIL_SERVICE=\u003cEMAIL_SERVICE\u003e\n\n# User email to send email from\nUSER_EMAIL=\u003cUSER_EMAIL\u003e\n\n# User email passeword\nUSER_PASSWORD=\u003cUSER_PASSWORD\u003e\n\n# Linkedin email\nLINKEDIN_EMAIL=\u003cLINKEDIN_EMAIL\u003e\n# Linkedin email\nLINKEDIN_PASSWORD=\u003cLINKEDIN_PASSWORD\u003e\n\n# Encryption key\nKEY=\u003cKEY\u003e\n\n# AWS IAM access key to S3 bucket\nAWS_SECRET_ACCESS_KEY=\u003cAWS_SECRET_ACCESS_KEY\u003e\nAWS_ACCESS_KEY_ID=\u003cAWS_ACCESS_KEY_ID\u003e\nAWS_STORAGE_BUCKET_NAME=\u003cAWS_STORAGE_BUCKET_NAME\u003e\nAWS_S3_REGION_NAME=\u003cAWS_S3_REGION_NAME\u003e\n```\n\n## Project Structure\n\n```\n .\\\n |--crm\\                # Main Django application directory\n |--accounts\\           # Account application directory (Login and registration)\n |--customers\\          # Customer application directory (Customer and client)\n |--leads\\              # Customer application directory (Main business leads)\n |--logs\\               # Logged data\n |--cmrcss\\             # CMRCSS application directory (Customer feedback)\n |--forntend\\           # React Js Frontend\n |--requirements.txt\\   # Dependencies\n```\n\n### API Endpoints\n\nList of available routes:\n\n**Account routes**:\n\n`POST /api/v1/accounts/register/` - Register a new user\\\n`POST /api/v1/accounts/login/` - Login a user\\\n`POST /api/v1/accounts/update/password/` - Update password of a user\\\n`GET /api/v1/accounts/logout/` - Logout a user\\\n`GET /api/v1/accounts/get/` - Get logged user\\\n\n_Company routes_:\n\n`POST /api/v1/accounts/create/company/` - Create a new company\\\n`GET /api/v1/accounts/company/\u003cint:company_id\u003e` - Get a company by id\\\n`GET /api/v1/accounts/search/company?str=search_string` - Search companies by name\\\n\n_Job routes_:\n\n`POST /api/v1/accounts/create/job/` - Create a job\\\n`GET /api/v1/accounts/job/\u003cint:job_id\u003e` - Get a job by id\\\n`GET /api/v1/accounts/search/job?str=search_string` - Search job by name\\\n\n**Feedback routes**:\n\n`POST /api/v1/cmrcss/feedback/\u003cstr:token\u003e` - User feedback\\\n\n**Customer routes**:\n\n`POST /api/v1/customer/create/customer` - Create a customer\\\n`GET /api/v1/customer/get/\u003cint:customerid\u003e` - Get a customer by id\\\n`GET /api/v1/customer/add/customer/\u003cint:customerid\u003e/job/\u003cint:jobid\u003e` - Add a customer to a job\\\n`GET /api/v1/customer/get/job/\u003cint:jobid\u003e` - Get a customer by job id\\\n\n_Customer routes_:\n\n`GET /api/v1/customer/get/client/job/\u003cint:jobid\u003e` - Get a client by job id\\\n`GET /api/v1/customer/get/client/\u003cint:clientid\u003e` - Get a customer by id\\\n\n**Leads routes**:\n\n`GET /api/v1/leads/create/lead/customer/\u003cint:customerid\u003e` - Create a leads\\\n`GET /api/v1/leads/lead/\u003cint:leadsid\u003e` - Get a lead by id\\\n`GET /api/v1/leads/lead/job/\u003cint:jobid\u003e` - Get all leads by job id\\\n`GET /api/v1/leads/lead/moved/job/\u003cint:jobid\u003e` - Get all checked leads by job id\\\n`GET /api/v1/leads/lead/not/moved/job/\u003cint:jobid\u003e` - Get all unchecked leads by job id\\\n\n_Marketing leads routes_:\n\n`POST /api/v1/create/market/\u003cint:leadid\u003e` - Create a marketing leads\\\n`POST /api/v1/create/market/` - Create all marketing leads\\\n`GET /api/v1/leads/market/\u003cint:marketingleadid\u003e` - Get marketing lead by id\\\n`POST /api/v1/leads/market/` - Get all marketing lead by id\\\n`POST /api/v1/leads/market/` - Get all marketing lead by id\\\n`POST /api/v1/leads/market/moved/` - Get all checked marketing lead by id\\\n`POST /api/v1/leads/market/not/moved/` - Get all unchecked marketing lead by id\\\n`GET /api/v1/leads/market/job/\u003cint:jobid\u003e` - Get all marketing leads by job id\\\n`GET /api/v1/leads/market/moved/job/\u003cint:jobid\u003e` - Get all checked marketing leads by job id\\\n`GET /api/v1/leads/market/not/moved/job/\u003cint:jobid\u003e` - Get all unchecked marketing leads by job id\\\n\n_Sales leads routes_:\n\n`POST /api/v1/leads/create/sales/\u003cint:marketingleadid\u003e` - Create a sales leads\\\n`POST /api/v1/leads/create/sales/` - Create all sales leads\\\n`GET /api/v1/leads/sales/\u003cint:salesleadid\u003e` - Get sales lead by id\\\n`POST /api/v1/leads/sales/` - Get all sales lead by id\\\n`POST /api/v1/leads/sales/moved/` - Get all checked sales lead by id\\\n`POST /api/v1/leads/sales/not/moved/` - Get all unchecked sales lead by id\\\n`GET /api/v1/leads/sales/job/\u003cint:jobid\u003e` - Get all sales leads by job id\\\n`GET /api/v1/leads/sales/moved/job/\u003cint:jobid\u003e` - Get all checked sales leads by job id\\\n`GET /api/v1/leads/sales/not/moved/job/\u003cint:jobid\u003e` - Get all unchecked sales leads by job id\\\n\n_Presales leads routes_:\n\n`POST /api/v1/create/presales/\u003cint:salesleadid\u003e` - Create a presales leads\\\n`POST /api/v1/create/presales/` - Create all presales leads\\\n`GET /api/v1/leads/presales/\u003cint:presalesleadid\u003e` - Get presales lead by id\\\n`POST /api/v1/leads/presales/` - Get all presales lead by id\\\n`POST /api/v1/leads/presales/moved/` - Get all checked presales lead by id\\\n`POST /api/v1/leads/presales/not/moved/` - Get all unchecked presales lead by id\\\n`GET /api/v1/leads/presales/job/\u003cint:jobid\u003e` - Get all presales leads by job id\\\n`GET /api/v1/leads/presales/moved/job/\u003cint:jobid\u003e` - Get all checked presales leads by job id\\\n`GET /api/v1/leads/presales/not/moved/job/\u003cint:jobid\u003e` - Get all unchecked presales leads by job id\\\n\n_Operations leads routes_:\n\n`POST /api/v1/create/operation/\u003cint:presalesleadid\u003e` - Create a operation leads\\\n`POST /api/v1/create/operation/` - Create all operation leads\\\n`GET /api/v1/leads/operation/\u003cint:operationsleadid\u003e` - Get operation lead by id\\\n`POST /api/v1/leads/operation/` - Get all operation lead by id\\\n`POST /api/v1/leads/operation/moved/` - Get all checked operation lead by id\\\n`POST /api/v1/leads/operation/not/moved/` - Get all unchecked operation lead by id\\\n`GET /api/v1/leads/operation/job/\u003cint:jobid\u003e` - Get all operation leads by job id\\\n`GET /api/v1/leads/operation/moved/job/\u003cint:jobid\u003e` - Get all checked operation leads by job id\\\n`GET /api/v1/leads/operation/not/moved/job/\u003cint:jobid\u003e` - Get all unchecked operation leads by job id\\\n\n_Clients leads routes_:\n\n`GET /api/v1/leads/create/client/operation/\u003cint:operationsleadid\u003e/job/\u003cint:jobid\u003e` - Create client from operations lead\\\n`GET /api/v1/leads/create/client/job/\u003cint:jobid\u003e` - Create all client from operations lead\\\n\nFeel free to contribute\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneo945%2Fcrm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fneo945%2Fcrm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneo945%2Fcrm/lists"}