Skip to content

atrithakar/cul_backend_fastapi_mongodb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Project CUL Backend

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.


How to Access

You can access deployed backend here. It also includes a web frontend, so go check it out.

Test Credentials

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

How to Use

Please refer to the Project CUL Repository for detailed instructions on:

  • Installing and setting up CUL
  • Using the CLI
  • Accessing module data

Architecture Highlights

  • 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

How to setup backend as a private registry

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

Contributing

Contributions to this backend are welcome!

Steps to Contribute

  1. Fork this Repository
    Create your own copy to begin working on new features or fixing bugs.

  2. 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  
    
  3. Follow the Coding Standards
    Make sure your changes follow Python best practices and are modular.

  4. Document Your Work
    Keep your code well-documented to ensure maintainability.

  5. 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.


Reporting Issues

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!


Status

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!

About

This is the backend of CUL, responsible for powering the CLI and WebUI by providing module metadata (versions and details), serving modules to the CLI, and handling module uploads.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors