/gudlft

Primary LanguageHTML

gudlift-registration

  1. Why

    This is a proof of concept (POC) project to show a light-weight version of our competition booking platform. The aim is the keep things as light as possible, and use feedback from the users to iterate.

  2. Getting Started

    This project uses the following technologies:

    • Python v3.x+

    • Flask

      Whereas Django does a lot of things for us out of the box, Flask allows us to add only what we need.

    • Virtual environment

      This ensures you'll be able to install the correct packages without interfering with Python on your machine.

      Before you begin, please ensure you have this installed globally.

  3. Installation

    • After cloning, change into the directory and type virtualenv .. This will then set up a a virtual python environment within that directory.

    • Next, type source bin/activate. You should see that your command prompt has changed to the name of the folder. This means that you can install packages in here without affecting affecting files outside. To deactivate, type deactivate

    • Rather than hunting around for the packages you need, you can install in one step. Type pip install -r requirements.txt. This will install all the packages listed in the respective file. If you install a package, make sure others know by updating the requirements.txt file. An easy way to do this is pip freeze > requirements.txt

    • Flask requires that you set an environmental variable to the python file. However you do that, you'll want to set the file to be server.py. Check here for more details

      QuickStart for Windows: run env.bat in the main directory, it will set the environment variables. Step by step details below.

      • For Windows in the directory :
        • set PYTHONPATH=%cd%
        • set FLASK_APP="server.py"
      • For Windows with PowerShell :
        • $env:PYTHONPATH=%cd%
        • $env:FLASK_APP="server.py"
    • You should now be ready to test the application. In the directory, type either flask run or python -m flask run. The app should respond with an address you should be able to go to using your browser.

  4. Current Setup

    The app is powered by JSON files. This is to get around having a DB until we actually need one. The main ones are:

    • competitions.json - list of competitions
    • clubs.json - list of clubs with relevant information. You can look here to see what email addresses the app will accept for login.
  5. Testing

    We performed the tests with Pytest, Coverage and Locust.
    Command line as follow :

    • set COVERAGE_RCFILE=%PYTHONPATH%\tests\.coveragerc in order to load config of coverage (env.bat do it)
    • coverage run -m pytest
    • coverage html or coverage report depending on the desired output format html report is in tests directory

Coverage Report

For load testing:

  • Set LOCUST_LOCUSTFILE=%PYTHONPATH%\tests\locustfile.py in order to load config test of Locust (env.bat do it)
  • locust

Go url : Locust 127.0.0.1:8089

Locust Index Locust Path Locust Number Users Locust Response Time Locust RPS