This repository contains the backend code of Project CUL, a command-line utility designed to manage C/C++ libraries efficiently.
🛠️ This version of the backend has been migrated from Flask + SQLite to FastAPI + MongoDB for better performance, scalability, and modularity.
CUL is being actively developed to become a fully modular, self-hostable, and open ecosystem for C/C++ module management. The backend plays a crucial role in powering both the CLI and Web UI.
You can access deployed backend here. It also includes a web frontend, so go check it out.
Note: These credentials belong to a read-only account and you can't modify this account in any ways. This is for users to have a glance at the website WITHOUT creating an account.
Email:
Password:
test
Please refer to the Project CUL Repository for detailed instructions on:
- Installing and setting up CUL
- Using the CLI
- Accessing module data
- FastAPI for modern, asynchronous Python backend
- MongoDB as the primary database for better document handling and future-proofing
- Modular and clean structure for easier deployment and maintenance
- Built with extensibility in mind, so self-hosting is made easy
Step 1: Clone the repository
git clone https://github.com/atrithakar/cul_backend_fastapi_mongodb.git
Step 2: Setup a virtual environment
cd cul_backend_fastapi_mongodb
python -m venv culb_env
source culb_env/bin/activate
Step 3: Install the dependencies
pip install -r requirements.txt
Step 4: Add the .env file with necessary credentials in app directory. .env file should look like this:
DB_USER=db_user_name
DB_PASSWORD=db_password
DB_CLUSTER=db_cluster_name
Db_NAME=cul_db
SESSION_SECRET_KEY=secret_key
Step 5: Start the server
python main.py
Contributions to this backend are welcome!
-
Fork this Repository
Create your own copy to begin working on new features or fixing bugs. -
Set Up Locally
Clone your fork and set up the development environment:git clone https://github.com/atrithakar/cul_backend_fastapi_mongodb.git cd cul_backend_fastapi_mongodb pip install -r requirements.txt -
Follow the Coding Standards
Make sure your changes follow Python best practices and are modular. -
Document Your Work
Keep your code well-documented to ensure maintainability. -
Submit a Pull Request
Create a PR with a clear description of what was added or fixed.
Tip: Before submitting a PR, consider opening an issue first to discuss your idea or bug report with the maintainers.
Found a bug or have suggestions for improvement?
Please open an issue in the GitHub Issues section.
Your feedback helps improve the platform for everyone!
This backend is still in active development. Hosting and production deployment will be announced once all major bugs are resolved and testing is complete.
Stay tuned for updates!