Skip to content

math-vsu/University

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 

Repository files navigation

University

Java проект для Матфак ВГУ

Книга по Swing

Как пользоваться git репозиторием

JSP and Servlets

Изначальный гугл-док с планом

Задачи

Бизнес логика:

  • Добавление студента
  • Удаление студента
  • Рефреш таблицы студентов и списка для удаления
  • Редактирование студента
  • JMenu
  • CRUD преподов
  • При чтении студента ищем группу по полю Student.group_id, отображаем информацию о группе в списке студентов
  • В seeder сделать проверку на существование таблицы, если существует - не пытаемся ее создать
  • Хранение Group в БД, CRUD(create, update, delete) групп по аналогии со студентами
  • Чтение списка студентов из файла и загрузка в БД(FileDialog)
  • При добавлении студента, группы, препода - сразу после добавления получаем его id и отображаем в таблице
  • CRUD занятий(пока в самом простом виде: выбираем группу, препода, и пишем время и кабинет)
  • Добавить валидации в расписание(нельзя одновременно ставить 2 пары группе, 2 пары в один кабинет, 2 пары у препода)
  • Отображение сетки расписания - общей, для группы, для преподавателя

Рефакторинг:

  • Внутри пакета ui создать отдельные подпакеты для разных сущностей, типа ru.vsu.math.java.ui.students; и тд
  • в MainUI конструктор монструозен, разбить его на отдельные методы
  • Sudent, Group, Tutor, DoubleClass вынести в отдельный пакет, или подпакет в Entity, над названием подумать. Нужно отделить вещественные сущности от абстрактных
  • Аналогично отрефакторить конструкторы во всех классах-окнах, разбить на методы чтобы было читабельно
  • В нескольких местах происходит операция поиска по коллекции студентов/преподов/групп по id объекта в базе, хорошо бы ввести стуктуру HashMap где ключ - это id в БД, значение - объект из списка в app. Сами хеш-мэпы храним в Application, и делаем методы типа Student.getById(int id), Group.getById(int id), Tutor.getById(int id) а эти методы уже выбирают объект из хеш-мэпа. Соотв при добавлени/удалении объекта изменяем и его хешмеп

Архитектура:

  • NetworkRecord интерфейс, шлет данные по сети вместо SQL
  • Сервер слушает TCP, получает данные и пишет в SQL
  • Сервер многопоточный
  • Переделать сервер в HTTP веб-сервис
  • HttpRecord делает запросы к REST Api
  • servlets, java ee, tomcat
  • hibernate

Доп:

  • Попробовать написать тесты на JUnit

About

Java Class Example Application

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages