Данный проект позволяет автоматизировать подачу заявлений. Проект делает акцент на общежития учебного заведения. Можно следить за количеством принятых заявлений, какой гендер у комнаты, сколько свободных осталось мест и не только. Вот таблица API.
Проект использует лицензию MIT. Мы будем только рады, если вы его будете модернизировали под свои нужды.
Имеется сайт, на котором показаны (визуально) общежития, к ним этажи, а на этажах комнаты. Комнаты показывают информацию о количестве и гендере проживающих. Пользователь может выбрать для себя комнату, заполнить анкету и ее отправить. Пользователь должен скачать сгенерированный файл (песле отправки анкеты), распечатать и принести в учебное заведение.
Учебное заведение имеет доступ к базам данных отправленных заявлений и созданных когда-то отчетов. Отчеты создаются после принятия заявления (на физическом уровне). А еще, нужно будет получить доступ, чтобы что-то изменять или читать (на административном уровне).
Чтобы в режиме реального времени, наблюдать за свободными местами общежития. Тут должна была быть ссылка, на репозиторий сайта.
- Spark - на нем всё и работает;
- MySQL JDBC - не НАДА писать свой драйвер к БД;
- Gson - на изи паршу JSON;
- Heroku - через него сайт и тестили;
- Docx4J - помогает с документами;
- Joda Time - не думаю про изменение времени;
- jTDS JDBC - Microsoft, учитесь;
- JavaMail - удобно работать с email.
А также спасибо за Java SE Development Kit 8, всей теории сетевой модели OSI и моему ПК.
Написано всё в кратце, но всегда можно посетить таблицу данного REST-приложения.
Метод | Ссылка | Описание |
---|---|---|
GET | /api/db | Получить данные: "Общаги", "Этажи", "Названия", "Гендеры" и "Статусы отчетов" |
GET | /api/search/request | Получить заявление по его ID |
GET | /api/auth | Авторизироваться и получить токен |
GET | /api/statistic | Получить общую статистику |
GET | /api/doc/request | Сгенерировать и получить документ "Заявление" |
GET | /api/doc/direction | Сгенерировать и получить документ "Направление" |
GET | /api/room | Получить комнаты (этажа) |
GET | /api/report | Получить все отчеты из БД |
GET | /api/request | Получить все заявления из БД |
GET | /api/search/name | Поиск названий. Подсказка. |
GET | /api/search/city | Текст для поиска городов. |
DELETE | /api/request | Удалить заявление |
PUT | /api/active/request | Сделать, как прочитанное заявление |
PUT | /api/status | Обновляет статус в конкретном отчете |
POST | /api/report | Создать отчет |
POST | /api/request | Создать заявление |
Это те файлы и директории, которей держат основу ОСНОВ этого проекта.
- Procfile - файл для запуска приложения в heroku.com.
- docs - директория, чтобы работать с документами в будущем.
- sql-install - скрипты, для настройки БД.
- config.properties - конфигурационный файл электронной почты и БД. Можно так же добовать новые конфигурации, новых или старых фреймворков.
- DataBase.java - подключения к базам данных. Некий паттерн фасад.
- DataConfig.java - файл, в котором хранятся "глобал переменные". Добавляет мобильность к проекту. Например: можно легко переименновать колонку таблицы базы данных.
- heroku - директория для Heroku.
- local - директория для локального пользования.
- DormAPI.java - место, где находятся все CRUD API.
- providers - тут все SQL запросы.
- docx - директория в которой реализован фреймворк docx4j
- ControlWrite.java - файл, который проверяет всё то, что нужно проверять, чтобы записать в БД. Например проверка: email, названий и телефонного номера.
Правильная "установка" и сборка проекта.
Первоначально необходимо настроить сервер реляционной БД, а потом идти и поднимать СЕРФАК.
Зайдите в репозиторий и найдите директорию sql-install. Там лежат скрипты, используйте их.
Все пароли, логины можно написать вот ТУТ.
db.type = mysql или mssql
. Раз ссылка и два ссылка.
Всё? Работает? Точно? Го устанавливать дальше?
За сборку проекта в основном отвечает скрипт по этой ссылке. Первым делом нам необходимо отчистить пороект. Найдите вкладку Build и нажмиет на кнопку Clean Project, либо используйте gradle через терминал, командой gradle clean
.
Далее необходимо запустить скрипт gradle fatJar
(Можно и через вашу IDE).
Сгенерируется JAR архив, путь $project/build/libs/
.
Создайте новую директорию для вашего (только, что) сгенерированного приложения. Поместить в эту директорию: JAR и docs директорию.
В итоге у нас получилась вот такая иерархия:
┌─new-folder
├┬─docs
│├┬─patterns
││├───direction.docx
││└───request.docx
││
│└──null
│
└──dorm-keu-1.0.jar
Если все сходится, запускайте JAR через команду java -jar dorm-keu-1.0.jar
.
Зайдите в браузер и перейдите по ссылке http://localhost:4567/api/db.
Создайте на Heroku dashboard, подключите dashboard к локальному git'у и замените названия тут, тут и тут. Вот пример:
~build.gradle~
group 'my-name-heroku'
applicationName = "my-name-heroku"
~Procfile~
web: ./build/install/my-name-heroku/bin/my-name-heroku
Теперь можно заливать на Heroku:
git add .
git commit -m "MyREST"
git push heroku master
Теперь он должен работать по ссылке https://my-name-heroku.herokuapp.com.
The MIT License (MIT)
Copyright (c) 2019 Osmium
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.