diff --git a/index.html b/index.html
new file mode 100644
index 00000000..0c5fe9ec
--- /dev/null
+++ b/index.html
@@ -0,0 +1,42 @@
+
+
+
+ ${day} - ${dates[i]}
`;
+
+ matrix.forEach((row)=>{
+ let lessons = row.cells[i];
+
+ if(lessons.length){
+ lessons.forEach(l=>{
+ html += `
+ ${l.subject} | ${l.teacher} | ${l.place} | ${row.time}
+
`;
+ });
+ } else {
+ html += `
Нет занятий | ${row.time}
`;
+ }
+ });
+
+ html += '
';
+ });
+
+ $('#scheduleContainer').html(html);
+ }
+ }
+
+ function renderSaved(){
+ if(lastData){
+ renderSchedule(lastData.days, lastData.dates, lastData.scheduleMatrix);
+ }
+ }
+
+ function updateGroupInfo(group){
+ $('#groupName').text(group.name || '');
+ $('#groupDetails').text(group.details || '');
+ $('#groupYear').text(group.year ? `Начало: ${group.year}` : '');
+ }
+
+ function updateTeacherInfo(teacher){
+ $('#groupName').text(teacher.name || '');
+ $('#groupDetails').text('Преподаватель');
+ $('#groupYear').text('');
+ }
+
+ function loadGroup(id){
+ currentGroupId = id;
+ currentTeacherId = null;
+
+ clearInfo();
+
+ const group = groups.find(g => g.id == id);
+ if(group) updateGroupInfo(group);
+
+ $('#scheduleContainer').html('Загрузка...');
+
+ $.get(API_URL, {groupId: id, week: weeks[currentWeekIndex]}, function(res){
+ lastData = res;
+ renderSchedule(res.days, res.dates, res.scheduleMatrix);
+ });
+ }
+
+ function loadTeacher(id){
+ currentTeacherId = id;
+ currentGroupId = null;
+
+ clearInfo();
+
+ const teacher = teachers.find(t => t.id == id);
+ if(teacher) updateTeacherInfo(teacher);
+
+ $('#scheduleContainer').html('Загрузка...');
+
+ $.get(TEACHER_API_URL, {staffId: id, week: weeks[currentWeekIndex]}, function(res){
+ lastData = res;
+ renderSchedule(res.days, res.dates, res.scheduleMatrix);
+ });
+ }
+
+ function autocomplete(input){
+ let val = input.val().toLowerCase();
+ let ul = $('#suggestions').empty();
+
+ let groupSuggestions = groups
+ .filter(g => g.name.toLowerCase().includes(val))
+ .map(g => ({...g, type: 'group'}));
+
+ let teacherSuggestions = teachers
+ .filter(t => t.name.toLowerCase().includes(val))
+ .map(t => ({...t, type: 'teacher'}));
+
+ let suggestions = [...groupSuggestions, ...teacherSuggestions];
+
+ if(suggestions.length){
+ suggestions.forEach(s=>{
+ ul.append(`