Skip to content

W.I.P. - This is the backend (json.server Fake API) of the Ballet Class Planner - An application for teachers to plan their classes, and for students to access them.

Notifications You must be signed in to change notification settings

Hbler/ballet-class-planner-json_server

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ballet Class Planner / Exercise Planner
Planejador de Aulas de Ballet / Exercícios

This is the backend (json.server Fake API) of the Ballet Class Planner - An application for teachers to plan their classes, and for students to access them.

Este é o backend (json.server Fake API) do Planejdor de Aulas de Ballet - Uma aplicação para professoras e professores planejarem suas aulas e para estudantes acessa-las.

Endpoints

As stated in JSON-Server-Auth Documentation, there are 3 endpoints that can be used to create a new user and 2 endpoints for login. Assim como a documentação do JSON-Server-Auth, existem 3 endpoints que podem ser utilizados para cadastro e 2 endpoints que podem ser usados para login.

BASE URI:

ballet-class-planner.herokuapp.com/

Register|Cadastro

POST - /register
POST - /signup
POST - /users
Any of this 3 endpoints will create a new user. The required fields are email and password. For this application is recommended the addition of a type attribute (teacher or student) and of an empty array of teachers if the type is student and of students if the type is teacher.

pt-BR
Qualquer um desses 3 endpoints irá cadastrar o usuário na lista de "Users", sendo que os campos obrigatórios são os de email e password. Para essa aplicação é recomendado a adição de um tipo (teacher ou student) e de um array vazio de teachers se o tipo for student e de students se o tipo for teacher.
POST - /login
POST - /signin
Any of these 2 endpoints can be used to login with an existent user. All the following endpoints require a token to be used.

pt-BR
Qualquer um desses 2 endpoints pode ser usado para realizar login com um dos usuários cadastrados na lista de "Users". Todos os endpoints a seguir precisam de um token para serem utilizados.

User| Usuário

GET - /users/:id
PUT - /users/:id
PATCH - /users/:id
DELETE - /users/:id
Use these endpoints to get (GET) details about an user, update (PUT, PATCH) and user, or remove (DELETE) an user from the database.

requires token

pt-BR
Utilizer esses endpoints para acessar (GET) os detalhes de um usuário, atualizar (PUT, PATCH) um usuário, ou remover (DELETE) um usuário do banco de dados.
token necessário

Classes| Aulas

POST - /classes
PUT - /classes/:id
PATCH - /classes/:id
DELETE - /classes/:id

Write permissions (PUT, PATCH, DELETE) only available for owner's token, the owner id must be passed at the moment of creation (POST). Can be seen by all registered users, any access restrictions must be performed on the frontend.

requires token

pt-BR
Permissões de edição (PUT, PATCH, DELETE) disponível apenas para o token do proprietário o id do proprietário deve ser passado no momento da criação (POST). Podem ser vizualizadas por qualquer usuário logado, restrições de visualização devem ser realizadas no frontend
token necessário

Creating a new class | criando uma nova aula

POST /classes - Body Content

Conteúdo do body

{
      "name": "Ballet Class 1st Year",
      "userId": 1
}

POST /classes - Response Format - 200 Ok

Formato da resposta

{
	"name": "Ballet Class 1st Year",
	"userId": 1,
	"id": 1
}

POST /classes - Response Format - 403 Forbidden (No user ID)

Formato da resposta sem ID do usuário

{
    "Private resource creation: request body must have a reference to the owner id"
}

Getting classes | Listar aulas

All classes Todas as aulas

GET /classes - Response Format - 200 Ok

Formato da resposta

[
	{
		"name": "Ballet Class 1st Year",
		"userId": 1,
		"id": 1
	}
]

All user classes Todas as aulas de um usuário

GET users/:userId/classes - Response Format - 200 Ok

Formato da resposta

[
	{
		"name": "Ballet Class 1st Year",
		"userId": 1,
		"id": 1
	}
]

Classe by id Aulas por Id

GET /classes/:classId - Response Format - 200 Ok

Formato da resposta

{
    "name": "Ballet Class 1st Year",
    "userId": 1,
    "id": 1
}

Classes by name Aulas por nome

GET /classes?name=Ballet Class 1st Year - Response Format - 200 Ok

Formato da resposta

[
	{
		"name": "Ballet Class 1st Year",
		"userId": 1,
		"id": 1
	}
]

Class + Exercises Aula + Exercícios

GET /classes/:classId?_embed=exercises - Response Format - 200 Ok

Formato da resposta

{
	"name": "Ballet Class 1st Year",
	"userId": 1,
	"id": 1,
	"exercises": [
		{
			"name": "Pliés",
			"classId": 1,
			"userId": 1,
			"id": 1
		},
		{
			"name": "Tandu",
			"classId": 1,
			"userId": 1,
			"id": 2
		},
		{
			"name": "Glissé",
			"classId": 1,
			"userId": 1,
			"id": 3
		},
		{
			"name": "Jeté",
			"classId": 1,
			"userId": 1,
			"id": 4
		}
	]
}

Exercises| Exercícios

POST - /exercises
PUT - /exercises/:id
PATCH - /exercises/:id
DELETE - /exercises/:id

Write permissions (PUT, PATCH, DELETE) only available for owner's token, the owner id along with the class id must be passed at the moment of creation (POST). Can be seen by all registered users, any access restrictions must be performed on the frontend.

requires token

pt-BR
Permissões de edição (PUT, PATCH, DELETE) disponível apenas para o token do proprietário o id do proprietário junto com o id da aula deve ser passado no momento da criação (POST). Podem ser vizualizadas por qualquer usuário logado, restrições de visualização devem ser realizadas no frontend
token necessário

Creating a new exercise | criando um novo execício

POST /exercises - Body Content

Conteúdo do body

{
  "name": "Pliés",
  "classId": 1,    
  "userId": 1
}

POST /exercises - Response Format - 200 Ok

Formato da resposta

{
  "name": "Pliés",
  "classId": 1,    
  "userId": 1,
  "id":1,
}

POST /exercises - Response Format - 403 Forbidden (No user ID)

Formato da resposta sem ID do usuário

{
    "Private resource creation: request body must have a reference to the owner id"
}

Getting exercises | Listar exercícios

All exercises Todos exercícios

GET /exercises - Response Format - 200 Ok

Formato da resposta

[
	{
		"name": "Pliés",
		"classId": 1,
		"userId": 1,
		"id": 1
	},
	{
		"name": "Tandu",
		"classId": 1,
		"userId": 1,
		"id": 2
	},
	{
		"name": "Glissé",
		"classId": 1,
		"userId": 1,
		"id": 3
	},
	{
		"name": "Jeté",
		"classId": 1,
		"userId": 1,
		"id": 4
	}
]

All exercises in a class Todos exercícios em uma aula

GET classes/:classId/exercises - Response Format - 200 Ok

Formato da resposta

[
	{
		"name": "Pliés",
		"classId": 1,
		"userId": 1,
		"id": 1
	},
	{
		"name": "Tandu",
		"classId": 1,
		"userId": 1,
		"id": 2
	},
	{
		"name": "Glissé",
		"classId": 1,
		"userId": 1,
		"id": 3
	},
	{
		"name": "Jeté",
		"classId": 1,
		"userId": 1,
		"id": 4
	}
]

Exercise by id Exercício por Id

GET /exercises/:exerciseId - Response Format - 200 Ok

Formato da resposta

{
	"name": "Pliés",
	"classId": 1,
	"userId": 1,
	"id": 1
}

Exercises by name Exercícios por nome

GET /exercises?name=Tendu - Response Format - 200 Ok

Formato da resposta

[
	{
		"name": "Tandu",
		"classId": 1,
		"userId": 1,
		"id": 2
	}
]

Exercises + Sequences Exercícios + Sequências

GET /exercises?_embed=sequences - Response Format - 200 Ok

Formato da resposta

[
	{
		"name": "Pliés",
		"classId": 1,
		"userId": 1,
		"id": 1,
		"sequences": [
			{
				"sequence": [
					"1ª - 2x Demi: 8t, 1x Grand: 8t, 1x Suplesse: 8t",
					"2ª - 2x Demi: 8t, 1x Grand: 8t, 1x Suplesse Barra: 8t",
					"4ª - 2x Grand: 16t, Suplesse Out: 8t",
					"5ª - 2x Grand: 16t, Cambret: 8t",
					"Sous-sus, detourne, talon, degagé, 1ª: 6t",
					"1ª - 4x Elevé: 8t, 4x Demi (demi-pointe): 8t, Balance"
				],
				"music": {
					"name": "Lucy",
					"album": "60s",
					"artist": "Andrew Holdsworth",
					"link": ""
				},
				"exerciseId": 1,
				"classId": 1,
				"userId": 1,
				"id": 1
			}
		]
	},
	{
		"name": "Tandu",
		"classId": 1,
		"userId": 1,
		"id": 2,
		"sequences": [
			{
				"sequence": [
					"1ª - En Croix en dehors: 16t, 1x: 2t, 2x: 1t",
					"Repeat en dedans",
					"1ª - Em Croix em dehors: 16t, Tandu, foundue, fermé, alongé: 4t",
					"Repeat en dedans"
				],
				"music": {
					"name": "Grape Vine",
					"album": "60s",
					"artist": "Andrew Holdsworth",
					"link": ""
				},
				"exerciseId": 2,
				"classId": 1,
				"userId": 1,
				"id": 2
			}
		]
	},
	{
		"name": "Glissé",
		"classId": 1,
		"userId": 1,
		"id": 3,
		"sequences": [
			{
				"sequence": [
					"1ª - En croix en dehors: 16t, 1x: 4t",
					"Repeat en dedans",
					"1ª - En croix en dehors: 16t 2x: 4t",
					"Sous-sus, detourne, talon, degagé, 1ª",
					"repeat other side"
				],
				"music": {
					"name": "Eileen",
					"album": "60s",
					"artist": "Andrew Holdsworth",
					"link": ""
				},
				"exerciseId": 3,
				"classId": 1,
				"userId": 1,
				"id": 3
			}
		]
	},
	{
		"name": "Jeté",
		"classId": 1,
		"userId": 1,
		"id": 4,
		"sequences": [
			{
				"sequence": [
					"1ª - En croix en dehors: 16t, 1x: 4t - hold-out: 3t",
					"Repeat en dedans",
					"1ª - Em croix em dehors: 32t:",
					"En Croix en dehors: 1x (4t) - hold out",
					"En Croix en dedans: 1x (4t) - hold out",
					"En Croix en dehors: 1x (4t) - hold out / 1x (1t) - wait (3t)",
					"En Croix en dehors: 1x (4t) - hold out / 1x (1t) - wait (3t)",
					"sous-sus / detourne"
				],
				"music": {
					"name": "Madonna",
					"album": "60s",
					"artist": "Andrew Holdsworth",
					"link": ""
				},
				"exerciseId": 4,
				"classId": 1,
				"userId": 1,
				"id": 4
			}
		]
	}
]

Sequences| Sequências

POST - /sequences
PUT - /sequences/:id
PATCH - /sequences/:id
DELETE - /sequences/:id

Write permissions (PUT, PATCH, DELETE) only available for owner's token, the owner id along with the class id and exercise id must be passed at the moment of creation (POST). Can be seen by all registered users, any access restrictions must be performed on the frontend.

requires token

pt-BR
Permissões de edição (PUT, PATCH, DELETE) disponível apenas para o token do proprietário o id do proprietário junto com o id da aula e o id do exercício deve ser passado no momento da criação (POST). Podem ser vizualizadas por qualquer usuário logado, restrições de visualização devem ser realizadas no frontend
token necessário

Creating a new sequence | criando uma nova sequência

POST /sequences - Body Content

Conteúdo do body

{
    "sequence": [
        "1ª - En croix en dehors: 16t, 1x: 4t - hold-out: 3t",
        "Repeat en dedans",
        "1ª - Em croix em dehors: 32t:",
        "En Croix en dehors: 1x (4t) - hold out",
        "En Croix en dedans: 1x (4t) - hold out",
        "En Croix en dehors: 1x (4t) - hold out / 1x (1t) - wait (3t)",
        "En Croix en dehors: 1x (4t) - hold out / 1x (1t) - wait (3t)",
        "sous-sus / detourne"
    ],
    "music": {
        "name": "Madonna",
        "album": "60s",
        "artist": "Andrew Holdsworth",
        "link": "" //optional
    },
    "exerciseId": 4,
    "classId": 1,
    "userId": 1,
}

POST /sequences - Response Format - 200 Ok

Formato da resposta

{
    "sequence": [
        "1ª - En croix en dehors: 16t, 1x: 4t - hold-out: 3t",
        "Repeat en dedans",
        "1ª - Em croix em dehors: 32t:",
        "En Croix en dehors: 1x (4t) - hold out",
        "En Croix en dedans: 1x (4t) - hold out",
        "En Croix en dehors: 1x (4t) - hold out / 1x (1t) - wait (3t)",
        "En Croix en dehors: 1x (4t) - hold out / 1x (1t) - wait (3t)",
        "sous-sus / detourne"
    ],
    "music": {
        "name": "Madonna",
        "album": "60s",
        "artist": "Andrew Holdsworth",
        "link": "" //optional
    },
    "exerciseId": 4,
    "classId": 1,
    "userId": 1,
    "id": 4,
}

POST /sequences - Response Format - 403 Forbidden (No user ID)

Formato da resposta sem ID do usuário

{
    "Private resource creation: request body must have a reference to the owner id"
}

Getting sequences | Listar seqências

All sequences Todos exercícios
GET /sequences - Response Format - 200 Ok

Formato da resposta

[
	{
		"sequence": [
			"1ª - 2x Demi: 8t, 1x Grand: 8t, 1x Suplesse: 8t",
			"2ª - 2x Demi: 8t, 1x Grand: 8t, 1x Suplesse Barra: 8t",
			"4ª - 2x Grand: 16t, Suplesse Out: 8t",
			"5ª - 2x Grand: 16t, Cambret: 8t",
			"Sous-sus, detourne, talon, degagé, 1ª: 6t",
			"1ª - 4x Elevé: 8t, 4x Demi (demi-pointe): 8t, Balance"
		],
		"music": {
			"name": "Lucy",
			"album": "60s",
			"artist": "Andrew Holdsworth",
			"link": ""
		},
		"exerciseId": 1,
		"classId": 1,
		"userId": 1,
		"id": 1
	},
	{
		"sequence": [
			"1ª - En Croix en dehors: 16t, 1x: 2t, 2x: 1t",
			"Repeat en dedans",
			"1ª - Em Croix em dehors: 16t, Tandu, foundue, fermé, alongé: 4t",
			"Repeat en dedans"
		],
		"music": {
			"name": "Grape Vine",
			"album": "60s",
			"artist": "Andrew Holdsworth",
			"link": ""
		},
		"exerciseId": 2,
		"classId": 1,
		"userId": 1,
		"id": 2
	},
	{
		"sequence": [
			"1ª - En croix en dehors: 16t, 1x: 4t",
			"Repeat en dedans",
			"1ª - En croix en dehors: 16t 2x: 4t",
			"Sous-sus, detourne, talon, degagé, 1ª",
			"repeat other side"
		],
		"music": {
			"name": "Eileen",
			"album": "60s",
			"artist": "Andrew Holdsworth",
			"link": ""
		},
		"exerciseId": 3,
		"classId": 1,
		"userId": 1,
		"id": 3
	},
	{
		"sequence": [
			"1ª - En croix en dehors: 16t, 1x: 4t - hold-out: 3t",
			"Repeat en dedans",
			"1ª - Em croix em dehors: 32t:",
			"En Croix en dehors: 1x (4t) - hold out",
			"En Croix en dedans: 1x (4t) - hold out",
			"En Croix en dehors: 1x (4t) - hold out / 1x (1t) - wait (3t)",
			"En Croix en dehors: 1x (4t) - hold out / 1x (1t) - wait (3t)",
			"sous-sus / detourne"
		],
		"music": {
			"name": "Madonna",
			"album": "60s",
			"artist": "Andrew Holdsworth",
			"link": ""
		},
		"exerciseId": 4,
		"classId": 1,
		"userId": 1,
		"id": 4
	}
]

All sequences in an exercise Todas sequências em um exercícios

GET exercises/:exerciseId/sequences - Response Format - 200 Ok

Formato da resposta

[
	{
		"sequence": [
			"1ª - En Croix en dehors: 16t, 1x: 2t, 2x: 1t",
			"Repeat en dedans",
			"1ª - Em Croix em dehors: 16t, Tandu, foundue, fermé, alongé: 4t",
			"Repeat en dedans"
		],
		"music": {
			"name": "Grape Vine",
			"album": "60s",
			"artist": "Andrew Holdsworth",
			"link": ""
		},
		"exerciseId": 2,
		"classId": 1,
		"userId": 1,
		"id": 2
	}
]

Sequence by id Sequência por Id

GET /sequences/:sequenceId - Response Format - 200 Ok

Formato da resposta

{
	"sequence": [
		"1ª - 2x Demi: 8t, 1x Grand: 8t, 1x Suplesse: 8t",
		"2ª - 2x Demi: 8t, 1x Grand: 8t, 1x Suplesse Barra: 8t",
		"4ª - 2x Grand: 16t, Suplesse Out: 8t",
		"5ª - 2x Grand: 16t, Cambret: 8t",
		"Sous-sus, detourne, talon, degagé, 1ª: 6t",
		"1ª - 4x Elevé: 8t, 4x Demi (demi-pointe): 8t, Balance"
	],
	"music": {
		"name": "Lucy",
		"album": "60s",
		"artist": "Andrew Holdsworth",
		"link": ""
	},
	"exerciseId": 1,
	"classId": 1,
	"userId": 1,
	"id": 1
}

About

W.I.P. - This is the backend (json.server Fake API) of the Ballet Class Planner - An application for teachers to plan their classes, and for students to access them.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%