From f6b72121994d30be25a127d5958224467d1fed48 Mon Sep 17 00:00:00 2001 From: ruihildt Date: Mon, 29 Jul 2019 18:30:37 +0200 Subject: [PATCH] Add database schema --- README.md | 45 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 9bb9f9f..7c8f310 100644 --- a/README.md +++ b/README.md @@ -14,4 +14,47 @@ Sleep Tracker is intended for anyone interested in improving their sleep and hea ## Possible further features - Make recommendations not only based on sleep time, but also on bed time (some reasearch will need to be done in that area) -- Connect to third party sleep tracking services \ No newline at end of file +- Connect to third party sleep tracking services + +## Database Schemas + +### Users | `users` +| field | data type | metadata | +| :--------| :--------------- | :-------------------------------------------------- | +| id | unsigned integer | primary key, auto-increments, generated by database | +| email | string | required | +| username | string | required | +| password | string | required | + +### Sleep Sessions | `sessions` + +| field | data type | metadata | +| :------------ | :--------------- | :-------------------------------------------------- | +| id | unsigned integer | primary key, auto-increments, generated by database | +| user_id | unsigned integer | foreign key referencing users.id, required | +| bed_time | unsigned integer | timestamp with date, required | +| wake_time | unsigned integer | timestamp with date, required | +| bed_tiredness | unsigned integer | between 1-5, | +| wake_mood | unsigned integer | between 1-5, | +| day_mood | unsigned integer | between 1-5, | + +### Average Mood per Sleep Session | `moods` +| field | data type | metadata | +| :------------- | :--------------- | :--------------------------------------------------- | +| id | unsigned integer | primary key, auto-increments, generated by database | +| session_date | unsigned integer | foreign key referencing sessions.wake_time | +| sleep_duration | unsigned integer | | +| average_mood | float | average of bed_tiredness/wake_mood/day_mood | + +## API Endpoints +- `POST /api/users` - add a new user +- `GET /api/users/:id` - fetch a user +- `PUT /api/users/:id` - update a user + +- `GET /api/sessions` - fetch list of all sessions +- `POST /api/sessions` - add a session +- `GET /api/sessions/:id` - get a single session by id +- `PUT /api/sessions/:id` - update a session by user id +- `DELETE /api/sessions/:id` - delete a session by user id + +- `GET /api/moods/:id` - fetch a list of last 30 moods by user id \ No newline at end of file