Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
This repository was archived by the owner on Dec 30, 2021. It is now read-only.

Deep-Cold-Storage/sakuta

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

67 Commits

Repository files navigation

Sakuta

Contractor management module built for a university assignment.


License: GPL v3

Source code of Sakuta, contractor management module built for a university assignment with FastAPI and Vue.js.

πŸ”₯ Sakuta was built as an assignment for my university course.

πŸ‘‘ It's alive! Check it out live at sakuta.bednarski.dev!


πŸ›  Best Features

Below are the most important features.

  • Docker container health check with a custom monitoring solution.

  • Managed Sentry used for application monitoring and exception tracking.

  • CI/CD pipelines for automatic building and deploying on my infrastructure build on top of GitHub Actions.

  • Simple End-To-End tests build with the Cypress testing framework run before each frontend deploy by CI/CD system to achieve the best user experience.


Backend Specific

  • Integration tests for the API service build with PyTest modules.

  • Python 3 (FastAPI) RESTful API build on top of PostgreSQL for storing application state.

  • Monitoring /health endpoint with microservice status.

  • Fully Dockerized development and deploy workflow.


Frontend Specific

  • SPA frontend build with Vue.js and Vue-Router.

πŸ’» Running Locally

It's easy to get started with developing Sakuta!

This project uses Docker as a development and production deployment tool, so you need It first!


Backend

πŸ’‘ Execute every command in the ./backend directory!

If you only want to run It, you need to:

  • Spin up Sakuta as containers, simply type:

    docker run -e DATABASE_URL="" -p 8000:8000 rangerdigital/sakuta:latest

This will spin up Sakuta and expose service API at http://127.0.0.1:8000.


If you want to make changes to the FastAPI app, you need to:

  • Install Python 3.8, then projects requirements.

    pip3 install -r requirements.txt
  • Run main.py, entry point for FastAPI app.

    uvicorn backend.main:app

    This will spin up the development server at http://127.0.0.1:5000.


Frontend

πŸ’‘ Execute every command in the ./frontend directory!

If you want to make changes to the Vue.js app, you need to:

  • Install NPM, then projects requirements.

    npm install
  • To then serve a website, simply type:

    npm run serve

This will create a development web server at http://127.0.0.1:8080. And It's a lot simpler!


πŸ“‹ Running Tests

Sakuta has a simple set of functional tests!

This project uses PyTest and Cypress as a testing tools, so you need them first!

  • To run backend tests, run Sakuta API service and in the ./backend directory type:

    pytest .
  • To run Cypress E2E tests, with everything running, open dashboard by typing:

    npm run open

    This will open a dashboard that will let you run all the specs.


🚧 Contributing

You are more than welcome to help me improve Sakuta!

Just fork this project from the master branch and submit a Pull Request (PR).
It's probably a good idea to run all the tests beforehand.


πŸ“ƒ License

This project is licensed under GPL-3.0 .

About

πŸ—ƒ Contractor management module built for a university assignment.

Topics

Resources

License

Stars

Watchers

Forks

Contributors

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /