Skip to content

Latest commit

 

History

History
116 lines (86 loc) · 3.08 KB

readme.md

File metadata and controls

116 lines (86 loc) · 3.08 KB

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.