Приложение представляет собой справочник для абитуриента, где он может почитать информацию о вузах, выбрать направление, отслеживать списки поступающих и узнать вероятность поступления на конкретное направление.
//@TODO TODO секция
Необходимо разработать архитектуру проекта
Продумать систему авторизации, не требующую от пользователя логина и пароль, но однозначно верефицирующую его
Придумать способ сбора и хранения информации о вузах (списки поступающих, проходные баллы, направления, ...)
Добавить в образовательную программу информацию о поступающих (списки за этот и прошлые годы)
Необходимо хранить в вузе рейтинг из гугл карт, счетчик числа направлений и место в рейтинге QS
Method name | Path | Description |
---|---|---|
POST | /user | Регистрация |
GET | /user | Получить информацию о пользователе |
PUT | /user | Изменить информацию о пользователе |
GET | /user/programs | Получить список отслеживаемых направлений |
GET | /recommendations | Получить список рекомендованных вузов |
POST | /universities | Добавить новый вуз |
GET | /universities | Получить список вузов |
GET | /universities/<:id> | Получить информацию о вузе |
GET | /universities/<:id>/photos | Получить фотографии из вуза |
GET | /universities/<:id>/programs | Получить информацию об образовательных программах |
PUT | /universities/<:id> | Изменить информацию о вузе |
POST | /universities/<:id>/programs | Добавить образовательную программу |
GET | /programs/<:id> | Получить информацию о направлении |
GET | /programs/<:id>/enrollees | Получить список поступающих |
PUT | /programs/<:id> | Изменить информацию о направлении |
GET | /programs/<:id>/similar | Получить список похожих направлений |
GET | /programs | Получить список всех направлений |
GET | /photos/<:id> | Получить фотографию |
POST | /feedback | Отправить отзыв |
GET | /feedback | Просмотреть список обращений |
POST | /feedback/<:id> | Посмотреть информацию об обращении |
GET | /search | Поиск |
Enrollee
служит для хранения подробной информации о пользователе,
включая информацию об избранном и результатах ЕГЭ
Enrollee {
id: ID,
firstName : String,
lastName: String,
egeResults: {
total: Int,
russian: Int,
mathProf: Int,
mathBase: Int,
biology: Int,
informatics: Int,
socialStudies: Int,
Physics: Int,
Chemistry: Int,
History: Int,
geography: Int,
english: Int,
german: Int,
french: Int,
chinese: Int,
Spanish: Int,
literature: Int,
}
chosenPrograms: [EdProgram]
}
EdProgram
- сущность, отвечающая за хранение информации об
образовательном направлении
EdProgram {
id: ID,
code: String,
university: ID,
universityName: String,
name: String,
Enrollees : [Enrollee],
preview : Photo
}
University
хранит в себе информацию о вузе, а также список направлений,
содержащихся в вузе
University {
id: ID,
name: String,
programs: [EdProgram],
about: String,
photos: [Photo],
site: URL,
preview : Photo,
}
Photo
содержит информацию о картинке
Photo {
id: ID,
url: URL,
description: String
}
Feedback
содержит информацию об отзыве
Feedback {
id: ID,
status: String,
author: ID,
email: EMAIL,
message: String,
}
!
- Обязательное поле
- Ошибка при обработке запроса
Создание нового пользователя. Тело запроса.
{
firstName: String,
lastName: String,
egeResults: {
russian: Int,
mathProf: Int,
mathBase: Int,
biology: Int,
informatics: Int,
socialStudies: Int,
Physics: Int,
Chemistry: Int,
History: Int,
geography: Int,
english: Int,
german: Int,
french: Int,
chinese: Int,
Spanish: Int,
literature: Int,
}
}
Ответы сервера
{
id: ID,
firstName: String,
lastName: String,
egeResults: {
russian: Int,
mathProf: Int,
mathBase: Int,
biology: Int,
informatics: Int,
socialStudies: Int,
Physics: Int,
Chemistry: Int,
History: Int,
geography: Int,
english: Int,
german: Int,
french: Int,
chinese: Int,
Spanish: Int,
literature: Int,
}
}
{
Error: 'Unable to create user due to invalid input'
}
Изменение уже существующего пользователя
{
firstName: String,
lastName: String,
egeResults: {
russian: Int,
mathProf: Int,
mathBase: Int,
biology: Int,
informatics: Int,
socialStudies: Int,
Physics: Int,
Chemistry: Int,
History: Int,
geography: Int,
english: Int,
german: Int,
french: Int,
chinese: Int,
Spanish: Int,
literature: Int,
}
}
Ответы сервера
{
id: ID,
firstName: String,
lastName: String,
egeResults: {
russian: Int,
mathProf: Int,
mathBase: Int,
biology: Int,
informatics: Int,
socialStudies: Int,
Physics: Int,
Chemistry: Int,
History: Int,
geography: Int,
english: Int,
german: Int,
french: Int,
chinese: Int,
Spanish: Int,
literature: Int,
}
}
{
Error: 'Unable to modify user due to invalid input'
}
{
Error: 'User cannot be found'
}
Получение информации о пользователе
Ответы сервера
{
id: ID,
firstName: String,
lastName: String,
egeResults: {
russian: Int,
mathProf: Int,
mathBase: Int,
biology: Int,
informatics: Int,
socialStudies: Int,
Physics: Int,
Chemistry: Int,
History: Int,
geography: Int,
english: Int,
german: Int,
french: Int,
chinese: Int,
Spanish: Int,
literature: Int,
}
}
{
Error: 'User cannot be found'
}
{
Error: 'Not authenticated'
}
Получение списка отслеживаемых направлений
Ответы сервера
[
{
id: ID,
code: String,
university: ID,
universityName: String,
name: String,
preview : Photo
}
]
{
Error: 'Not authenticated'
}
Получение списка рекомендованных пользователю вузов
Ответы сервера
[
{
id: ID,
name: String,
about: String,
photos: [Photo],
site: URL,
preview : Photo
}
]
Создать новый университет. Доступно только модератору.
{
name: String!,
about: String!,
photos: [Photo!],
site: URL,
preview : Photo!,
}
Ответы сервера
{
id: ID,
name: String,
about: String,
photos: [Photo],
site: URL,
preview : Photo,
}
{
Error: 'University cannot be added due to error occured in input'
}
{
Error: 'User must have moderator permissions'
}
{
Error: 'User must have moderator permissions'
}
Получить список существующих вузов
Параметры запроса
sort
- asc | desc | related
asc
- По алфавиту;
desc
- В обратном порядке;
related
- По степени рекомендованности пользователю;
page
- номер страницы
size
- колличество записей на странице (значение по умолчанию 10
).
Ответы сервера
[
{
id: ID,
name: String,
about: String,
site: URL,
preview : Photo,
}
]
Получить информацию о существующем вузе по id
Ответы сервера
{
id: ID,
name: String,
about: String,
site: URL,
preview : Photo,
}
{
Error: 'University cannot be found'
}
Получить список фото из вуза
Ответы сервера
[
{
id: ID,
url: URL,
description: String
}
]
{
Error: 'University cannot be found'
}
Получить список направлений в вузе
Ответы сервера
[
{
id: ID,
code: String,
university: ID,
universityName: String,
name: String,
preview : Photo
}
]
{
Error: 'University cannot be found'
}
Изменение информации о вузе
{
name: String,
about: String,
site: URL,
preview : Photo,
}
Ответы сервера
{
id: ID,
name: String,
about: String,
site: URL,
preview : Photo,
}
{
Error: 'University cannot be found'
}
{
Error: 'Must have moderator permissions'
}
{
Error: 'Must have moderator permissions'
}
{
code: String!,
university: ID!,
name: String!,
preview : Photo!
}
Ответы сервера
{
id: ID,
code: String,
university: ID,
universityName: String,
name: String,
preview : Photo
}
{
Error: 'Only moderator can create universities'
}
{
Error: 'University does not exist'
}
{
Error: 'Can not create university due to incorrect input'
}
Полочение подробной информации о направлении
Ответы сервера
{
id: ID,
code: String,
university: ID,
universityName: String,
name: String,
preview : Photo
}
{
Error: 'Educational program cannot be found'
}
Получить список поступающих на направление людей
Ответы сервера
[
{
id: ID,
firstName : String,
lastName: String,
egeResults: {
total: Int,
}
}
]
{
Error: 'Educational Program cannot be found'
}
Получить список направлений, похожих на данное
Ответы сервера
[
{
id: ID,
code: String,
university: ID,
universityName: String,
name: String,
preview : Photo
}
]
{
Error: 'Educational Program cannot be found'
}
Получить список всех направлений
Параметры запроса
sort
- asc | desc | related
asc
- По алфавиту;
desc
- В обратном порядке;
related
- По степени рекомендованности пользователю;
page
- номер страницы
size
- колличество записей на странице (значение по умолчанию 10
).
Ответы сервера
[
{
id: ID,
code: String,
university: ID,
universityName: String,
name: String,
preview : Photo
}
]
Получить информацию о фото
Ответы сервера
{
id: ID,
url: URL,
description: String
}
{
Error: 'Photo cannot be found'
}
Отправить отзыв о работе
{
author: ID!,
email: EMAIL!,
message: String!,
}
Ответы сервера
{
id: ID,
status: String,
author: ID,
email: EMAIL,
message: String,
}
{
Error: 'Cannot create a feedback request due to incorrect input'
}
Получить список обращений
Ответы сервера
[
{
id: ID,
status: String,
author: ID,
email: EMAIL,
message: String,
}
]
{
Error: 'Need to authorize'
}
Получить информацию об обращении
Response
{{
id: ID,
status: String,
author: ID,
email: EMAIL,
message: String,
}}
{
Error: 'Need to authorize'
}
Осуществить поиск по вузам, фото и направлениям
Параметры запроса
type
- photos | universities | programs | all (значение по умолчанию all
)
photos
- поиск по фото;
universities
- поиск по вузам;
programs
- поиск по направлениям;
Для поиска по нескольким категориям использовать символ '|'. Например, type=photos|universities
sort
- asc | desc | related
asc
- По алфавиту;
desc
- В обратном порядке;
related
- По степени рекомендованности пользователю;
page
- номер страницы
size
- колличество записей на странице (значение по умолчанию 10
).
Ответы сервера
{
photos: [Photo],
universities: [University],
programs: [EdPrograms],
}