Войти

Показать полную графическую версию : Разработка системы автоматизированного составления расписания на факультете


Ghost
16-02-2011, 19:39
Нужно создать систему автоматизированного составления расписания на факультете ВУЗа...

Приблизительный состав системы:
БД, которая содержит в себе данные о:
- преподавателях факультета, включая информацию о предметах, которые они могут читать, а также времени, в которое могут проводить занятия;
- перечне групп и студентов, которые учатся на факультете;
- перечне предметов, с привязкой к преподавателям и аудиториям, в которых конкретный предмет может читаться.

Web-сайт (или может достаточно будет обычного настольного (сетевого) приложения), который умеет авторизировать пользователей по разным уровням доступа (админ, опытный пользователь, гость...), и, собственно, с которым и будет вести работу каждый пользователь данной системы.
Что должен уметь/вмещать сайт (или сетевое приложение):
- доступ к приложению как локальный (LAN) - так и глобальный (WAN);
- удобный наглядный календарь, где каждый пользователь (в зависимости от прав доступа) может посмотреть интересующее его расписание занятий за указанный пользователем промежуток времени.

Система автоматического информирования всех зарегистрированных/указанных пользователей об изменениях в расписании (e-mail/SMS).

Это только приблизительный список требований...
Очень жду комментариев знающих людей, так как сам даже и не представляю, с чего лучше начать работу, и каким инструментарием это будет сделать быстрее/легче всего?

P.S. Я не знаю, может есть уже готовые подобные системы с открытым исходным кодом, которые с легкостью можно было бы оптимизировать под конкретную инфраструктуру ВУЗа? Я искал в Интернете, но готовых бесплатных решений так и не нашёл...

P.P.S. Сроки разработки очень сжатые (максимум 2 - 2,5 месяца), поэтому очень надеюсь на помощь :)

Beyound
16-02-2011, 20:22
ну незнаю, впринципе можно написать все самому скажем даже на java. Ибо на seo-оптимизацию мона забить, хост явно будет свой и посещаемость сомнительна. Основная работа - это именно создание запросов к БД, скажем mysql как самой простой и популярной ибо база будет маленькая и ставить ради нее oracle - как из пушки по воробьям. Для этого тебе потребуется знание html тегов чтобы нарисовать сам сайт и знание java для написания логики сайта. Календарь рисовать ненадо - ща их найти можно на чем угодно и какие угодно. Другое дело что скорее всего для удобной работы надо будет написать чтото дополнительное

Ghost
17-02-2011, 00:36
Нарисовать сайт - это, наверное, самая простая работа из данного задания; сойдёт и самый простенький, без наворотов и графики :)
Основная проблема - это "придумать" логику, которая умела бы составлять расписание занятий основываясь на информации из БД. При этом ещё и нужно учитывать ограниченность аудиторного фонда ВУЗа.

Я так думаю, первое, что мне нужно сделать - это "нарисовать" БД... в чём именно - без разницы, хоть в Пеинте, хоть в SQL... Потом и перенести можно будет в что-то другое :) Главное в самом начале правильно спроектировать таблицы, связи и т.д.

Кстати, по поводу инструментария, мне почему-то раньше казалось, что оптимальным выбором был бы ASP.NET сайт с БД на SQL, однако это нужно будет углублённо изучать ASP.NET, а на это нужно время...

P.S. Из инструментария я знаком (на любительском уровне) с C#, C++, Delphi, HTML, сейчас начал изучать PHP... Имею представление о том, как работают и проектируются БД. Проходил когда-то в университете Java-Script, но сейчас уже почти ничего не помню с того курса :)

Delirium
17-02-2011, 01:14
Ghost, это была тема моего диплома 6 лет назад :) Тогда написал на простом ASP. К сожалению, исходники не сохранились ;(.
А вообще, начать надо со структуры БД. Продумать связки преподавателей, аудиторий, предметов. Теоретически у тебя будет кучка справочников (преподаватели, аудитории, предметы и др) и одна основная таблица расписания с связями.

LilLoco
17-02-2011, 07:43
мне почему-то раньше казалось, что оптимальным выбором был бы ASP.NET сайт с БД на SQL, однако это нужно будет углублённо изучать ASP.NET »
сойдёт и самый простенький, без наворотов и графики »
Для создания такого сайта, я думаю, не нужно будет углубленно изучать asp.net, достаточно знать азы html и языка, на котором будете писать(в Вашем случае, Вы знакомы с C#)

Для сопоставления, например, преподавателей с предметами, можно создать отдельную табличку, т.е.: у Вас есть таблица преподавателей с полями (id, фамилия, имя, отчество) и таблица предметов(id, предмет), далее создается таблица(id, idпреподавателя, idпредмета) и в ней хранятся соответствующие номера. Не знаю насколько этот вариант правильный, но все же)

Ghost
17-02-2011, 09:15
Delirium, я с тобой дружу!!! :Beer: Ну и, соответственно, очень надеюсь на помощь :teeth:
начать надо со структуры БД »
Верно! Так и делаю, думаю над структурой, это первый шаг...
достаточно знать азы html и языка, на котором будете писать(в Вашем случае, Вы знакомы с C#) »
Да, это всё есть :)
Не знаю насколько этот вариант правильный, но все же) »
В любом случае спасибо!

Busla
17-02-2011, 13:19
Не понимаю, что вы так уцепились за БД? - Приложению всё равно откуда дёргать данные - из текстовых списков или БД. Нужно сначала разработать саму бизнес-логику, а потом уже строить интерфейс и определяться с хранением данных.

Beyound
17-02-2011, 17:54
БД это главное именно потому что оно поможет осознать глобальное решение задуманного (я имею в виду схему на листочке :-) ну или уже в ACCESSе скажем - кому где проще).
А вообще на мой взгляд можно сделать куда проще - разделить всю эту работу на 2-е задачи - написания приложения, которое бы умело по базе преподов, академических часов, предметов и аудиторий составлять грамотное расписание, и на вторую задачу - написать сам сайт который бы умел хапать из готовой базки все это (это намного проще).
По опыту первое решать проще основываясь на ООП и модульности. Создай классы, структурно олицетворяющие входные данные, создай переменные, глобальные, которые это все будут хранить (КЭШ). Напиши функцию, которая будет загонять эти данные в эти переменные, по началу можно не подключать базу вообще а поставить рандомизатор, который куда проще в написании и почти не требует отладки, здесь цель иметь входные данные, а не реализовать способ их получения. Создай класс который будет структурно олицетворять выходные данные - у тебя это календарь "с пометками". И напиши функцию которая бы из входного получала выходное. И отлаживай ее до упора - эта часть должна работать идеально. А вот когда ты это напишешь - тут уже можно навесить и получение данных из БД, и запись итогов в БД. И еще - ведь преподы меняются, часы тоже, предметы тоже - это в самом конце тоже нужно будет навесить, не кто не будет же редактировать БД вручную.
По второй части это скок времени останется, можно чтото красивое сделать, с супер продуманным дизайном, тупо чтобы забивал уже нарисованную табличку как на листке А3 с расписанием данными из заполненой БД.




© OSzone.net 2001-2012