Skip to content

norcalipa/crank

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Crank.fyi

Tests with codecov Known Vulnerabilities Build Image Deploy to Kubernetes (prod) Change Tracking Marker

Overview

This project is a web application built with Python using the Django framework, React, and TypeScript. It includes a backend API, frontend UI, and various automated tests.

Technologies Used

  • Python: Backend API
  • Django: Web framework
  • pip: Package manager for Python
  • MySQL: Database
  • JavaScript: Frontend logic
  • React: Frontend framework
  • TypeScript: Type safety for JavaScript
  • Jest: JavaScript testing framework
  • npm: Package manager for JavaScript
  • Docker: Containerization
  • GitHub Actions: CI/CD
  • Kubernetes: Container orchestration

Setup

Prerequisites

  • Node.js (version 18)
  • Python (version 3.8)
  • npm
  • pip

Installation

  1. Clone the repository:

    git clone https://github.com/your-repo/crank.git
    cd crank
  2. Install Python dependencies:

    python -m pip install --upgrade pip
    pip install -r requirements.txt
    pip install -r requirements-dev.txt
  3. Install Node.js dependencies:

    npm install

Running the Application

Development

  1. Start the backend server:

    python manage.py runserver
  2. Start the frontend development server:

    npm start

Production

  1. Build the frontend:

    npx webpack
  2. Run the backend server:

    python manage.py runserver

Testing

Running Tests

  1. Run Python tests:

    pytest
  2. Run JavaScript tests:

    npx jest

Continuous Integration

This project uses GitHub Actions for CI/CD. The workflows are defined in the .github/workflows directory.

  • Run Tests: Executes tests on every push.
  • Build Image: Builds and pushes Docker images on pull request merges.

Contributing

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature-branch).
  3. Commit your changes (git commit -m 'Add new feature').
  4. Push to the branch (git push origin feature-branch).
  5. Create a Pull Request.

License

This project is licensed under the MIT License.