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.
- 🔐 User authentication
- 📇 Contact management (CRUD operations)
- 📁 MongoDB integration for data storage
- 🌐 RESTful API endpoints
- 🧪 Unit and API testing with Pytest
- Backend: Python 3.10, FastAPI
- Database: MongoDB 6.0
- Testing: Pytest
- Logging: Built-in logging module
- Python 3.10+
- MongoDB 6.0+
-
Clone the repository:
git clone https://github.com/IvashDima/CRM_NoSQL.git cd CRM_NoSQL -
Create a virtual environment and activate it:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Start MongoDB: Ensure MongoDB is running on its default port.
-
Run the application:
python main.py
-
Access the API documentation:
Open your browser and navigate to http://localhost:4558/docs#/ to explore the interactive API docs.
Run unit and API tests using Pytest:
pytest -v test_api.pyCRM_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
-
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.
- GitHub: IvashDima
- LinkedIn: Dmytro Ivashchenko
- Email: dnytsyk@gmail.com
Feel free to reach out for questions, suggestions, or collaborations!
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! 🚀