Skip to content

gdalmau/parking_manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Parking manager

App to manage parking spots and make reservations

Installing the requirements

  1. Clone the repository: git clone git@github.com:gdalmau/parking_manager.git

  2. Create a virtual environment with Python 3.X (in the example Python 3.7):

sudo apt install virtualenvwrapper
mkvirtualenv parking-manager -p /usr/bin/python3.7
pip3 install .

Creating the database

From the root of manage.py.

cd parking_manager

  1. Create the database
python manage.py migrate
  1. Load the data
python manage.py loaddata parking_app/fixtures/*.json

Running

Run the server with:

python manage.py runserver

Docker

docker-compose up

Endpoints

POST /api/customers/

The request body has the following content:

{
    "name": "Customer name",
    "phone": "123456789"
}

Returns HTTP status 201 with the information of the customer created and the ID:

{
    "id": 1,
    "name": "Customer name",
    "phone": "123456789",
    "created_at": "2019-01-01T10:00:00.000000Z"
}

GET /api/customers

Returns HTTP status 201 with all the customers information

POST /api/reservations/

Returns HTTP status 201 with the information of the reservation created:

{
    "id": 2,
    "start_datetime": "2019-12-31T10:00:00Z",
    "end_datetime": "2019-12-31T12:00:00Z",
    "created_at": "2019-01-01T10:00:00.000000Z",
    "customer": 1,
    "spot": 2
}

GET /api/reservations

Returns HTTP status 201 with all the reservations information

Improvements

  • Create tests for the API and integrate with a CI tool like https://travis-ci.org/
  • Integrate with Docker
  • Create a simple frontend where the users can:
    • Register and login
    • Check the availability times of the parking
    • Make their own reservations

About

App to manage parking reservations

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages