Skip to content

ReDI-School-projects/CRM_NoSQL

Repository files navigation

BackEnd for CRM with NoSQL DB

Python FastAPI MongoDB Pytest License

📌 Overview

CRM_NoSQL is a lightweight Customer Relationship Management (CRM) system designed to manage contacts and track interaction history. Built with FastAPI and MongoDB, it offers a RESTful API for efficient data operations.

🚀 Features

  • 🔐 User authentication
  • 📇 Contact management (CRUD operations)
  • 📁 MongoDB integration for data storage
  • 🌐 RESTful API endpoints
  • 🧪 Unit and API testing with Pytest

🛠️ Tech Stack

  • Backend: Python 3.10, FastAPI
  • Database: MongoDB 6.0
  • Testing: Pytest
  • Logging: Built-in logging module

⚙️ Installation

Prerequisites

  • Python 3.10+
  • MongoDB 6.0+

Steps

  1. Clone the repository:

    git clone https://github.com/IvashDima/CRM_NoSQL.git
    cd CRM_NoSQL
    
  2. Create a virtual environment and activate it:

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    
  3. Install dependencies:

    pip install -r requirements.txt
    
  4. Start MongoDB: Ensure MongoDB is running on its default port.

  5. Run the application:

    python main.py
    
  6. Access the API documentation:

Open your browser and navigate to http://localhost:4558/docs#/ to explore the interactive API docs.

🧪 Testing

Run unit and API tests using Pytest:

pytest -v test_api.py

📂 Project Structure

CRM_NoSQL/
├── core/               # Core logic and utilities
├── logs/               # Log files
├── src/                # Source code
├── tests/              # Test cases
├── main.py             # Entry point of the application
├── requirements.txt    # Python dependencies
└── README.md           # Project documentation

📌 Important Notes

  • Educational Purpose: This project was developed as a final assignment for a Back-End Development course. It serves as a demonstration of integrating FastAPI with MongoDB.

  • Not Production-Ready: While functional, this application is not optimized for production environments. Features like advanced security, scalability, and error handling may need enhancements.

  • Feedback Welcome: Contributions, suggestions, and feedback are appreciated to improve the project further.

📫 Contact

Feel free to reach out for questions, suggestions, or collaborations!

📝 License

This project is provided for educational purposes only and does not have a specific license.

Feel free to contribute, suggest improvements, or fork the project! 🚀

About

Final project in Back End development course

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages