Skip to content

Commit d74c16c

Browse files
added new files
1 parent 736b563 commit d74c16c

File tree

142 files changed

+22993
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

142 files changed

+22993
-0
lines changed

Filer.py

+97
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
import os
2+
3+
CURRENT_FOLDER = os.getcwd()
4+
DATA_FOLDER = CURRENT_FOLDER + '/data'
5+
DATA_BASE_FILE = DATA_FOLDER + '/data.db'
6+
MANAGEMENT_FILE = DATA_FOLDER + '/management.db'
7+
SETTINGS_FOLDER = CURRENT_FOLDER + '/settings'
8+
SETTINGS_FILE_NAME = 'GeneralSettings.txt'
9+
LAB_FILE_NAME = 'Labs.csv'
10+
TEACHER_FILE_NAME = 'Teachers.csv'
11+
ROOM_FILE_NAME = 'Rooms.csv'
12+
LAB_MANAGEMENT_FILE_NAME = 'LabManagement.csv'
13+
TEACHER_MANAGEMENT_FILE_NAME = 'TeacherManagement.csv'
14+
TIME_HEADER_FILE_NAME = 'TimeHeader.txt'
15+
TIME_TABLE_FOLDER = CURRENT_FOLDER + '/timetables'
16+
TIME_TABLE_FILE_NAME = 'MasterTimeTable'
17+
ROOM_VIEW_FOLDER = TIME_TABLE_FOLDER + '/RoomWise'
18+
TEACHER_VIEW_FOLDER = TIME_TABLE_FOLDER + '/TeacherWise'
19+
CLASS_VIEW_FOLDER = TIME_TABLE_FOLDER + '/ClassWise'
20+
HTML_FOLDER = CURRENT_FOLDER + '/html_files'
21+
22+
23+
def createTimeTableFolder():
24+
25+
import os
26+
target = TIME_TABLE_FOLDER
27+
if(not os.path.exists(target)):
28+
os.mkdir(target)
29+
os.mkdir('%s' % (TEACHER_VIEW_FOLDER))
30+
os.mkdir('%s' % (ROOM_VIEW_FOLDER))
31+
os.mkdir('%s' % (CLASS_VIEW_FOLDER))
32+
os.mkdir('%s' % HTML_FOLDER)
33+
os.mkdir('%s/rooms' % HTML_FOLDER)
34+
os.mkdir('%s/teacher' % HTML_FOLDER)
35+
os.mkdir('%s/class' % HTML_FOLDER)
36+
return target
37+
38+
def createDataFolder():
39+
40+
import os
41+
target = DATA_FOLDER
42+
if(not os.path.exists(target)):
43+
os.mkdir(target)
44+
import teacher
45+
import lab
46+
teacher.makeTeacherManagementFile()
47+
lab.makeLabManagementFile()
48+
return target
49+
50+
def createSettingsFolder():
51+
52+
import os
53+
target = SETTINGS_FOLDER
54+
if(not os.path.exists(target)):
55+
os.mkdir(target)
56+
return target
57+
58+
#creates a folder for department data.
59+
def createDepartmentFolder(departmentName):
60+
'creates department folder in "data" directory'
61+
import os
62+
target = '%s/%s' % (DATA_FOLDER, departmentName)
63+
if(not os.path.exists(target)):
64+
os.mkdir(target)
65+
return target
66+
67+
68+
69+
#lists all departments
70+
def listAllDepartments():
71+
import os
72+
'TODO: if path does not exists...'
73+
folders = os.listdir(DATA_FOLDER)
74+
departs = list()
75+
for i in folders:
76+
if(os.path.isdir('%s/%s'%(DATA_FOLDER,i))):
77+
departs.append(i)
78+
departs.sort()
79+
return tuple(departs)
80+
81+
def readGeneralSettingsFile(request):
82+
import os
83+
settings = SETTINGS_FOLDER + '/' + SETTINGS_FILE_NAME
84+
85+
if(not os.path.exists(settings)):
86+
print('Path %s does not exists'%(settings))
87+
input('TODO: Exception should be raised here....')
88+
else:
89+
f = open(settings,'r')
90+
tokens = f.readline().strip()
91+
for l in f:
92+
if(l.startswith('%s'%(request))):
93+
t = l.strip().split('%s'%(tokens))
94+
return t[-1]
95+
print('Nothing found about %s in generalSettingsfile...'%(request))
96+
input('TODO: Exception')
97+
return None

ReadMe.txt

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
8:22 AM 19-DEC-18 (Wed)
2+
All views created Successfully!!!

TimeTable.py

+105
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
def createTimeTable():
2+
import timing
3+
periods = timing.makePeriods()
4+
5+
import room
6+
allRooms = room.readAllRooms().Name
7+
8+
days = list()
9+
for i in timing.daysOfWeek():
10+
for j in range(0, len(allRooms)):
11+
days.append(i)
12+
13+
rooms = list()
14+
for i in range(0,len(timing.daysOfWeek())):
15+
rooms.extend(allRooms)
16+
17+
import pandas as pd
18+
dataF = pd.DataFrame(index = [days,rooms],columns = ['P%s'%(i) for i in range(1,len(periods)+1)])
19+
dataF = dataF.rename_axis(['Days','Rooms'], axis = 'index')
20+
initializeCells(dataF)
21+
dataF.to_csv('TimeTable.csv')
22+
23+
def readTimeTable(fileName='TimeTable.csv'):
24+
import pandas as pd
25+
data = pd.read_csv(fileName)
26+
data = data.set_index(['Days','Rooms'])
27+
return data
28+
29+
30+
def theDefaultEmptyChar():
31+
return '#'
32+
33+
def initializeCells(timeTableFrame):
34+
'timeTableFrame whose cells are to be initialized'
35+
import timing
36+
import room
37+
for p in list(timeTableFrame.columns):
38+
for d in timing.daysOfWeek():
39+
for r in room.readAllRooms().Name:
40+
timeTableFrame.loc[(d,r),p] = theDefaultEmptyChar()
41+
42+
def generateTimeTable(className,duration):
43+
'class whose timetable is to be generated'
44+
45+
import pandas as pd
46+
timeTable = readTimeTable()
47+
import semester
48+
courseTable = semester.readClass(className)
49+
50+
subjects = list()
51+
52+
print(courseTable)
53+
for i in courseTable.index:
54+
tempSubject = courseTable.loc[i,'Subjects']
55+
creditMin = courseTable.loc[i,'CM']
56+
while(creditMin != 0):
57+
if(creditMin == duration):
58+
subjects.append([tempSubject,duration])
59+
creditMin -= duration
60+
elif(creditMin > duration):
61+
if((creditMin-duration) >= duration):
62+
subjects.append([tempSubject,duration])
63+
creditMin -= duration
64+
else:
65+
subjects.append([tempSubject,creditMin])
66+
creditMin -= creditMin
67+
else:
68+
subjects.append([tempSubject : creditMin])
69+
creditMin -= creditMin
70+
print(subjects)
71+
input('wait..')
72+
73+
timeList = list()
74+
with open('timeHeader.txt') as f:
75+
data = f.read()
76+
timeList = eval(data)
77+
timeList.insert(0,'')
78+
import random
79+
random.shuffle(subjects)
80+
import timing
81+
import room
82+
for r in room.readAllRooms().Name:
83+
for p in timeTable.columns:
84+
for d in timing.daysOfWeek():
85+
if((len(subjects)!=0)):
86+
if((timeTable.loc[(d,r),p] == theDefaultEmptyChar())):
87+
temp = subjects.pop()
88+
if(temp[1] == duration)
89+
timeTable.loc[(d,r),p] = [
90+
className,temp[0],'Teacher',timeList[int(p[-1])]]
91+
elif(temp[1] < duration):
92+
s = timeList[p[-1]]
93+
timeTable.loc[(d,r),p] = [
94+
className,temp[0],'Teacher',timeList[int(p[-1])]]
95+
96+
97+
if(len(subjects)!=0):
98+
print('Not enough rooms...')
99+
timeTable.to_csv('TimeTable.csv')
100+
timeTable.to_html('TimeTable.html')
101+
102+
103+
104+
105+

0 commit comments

Comments
 (0)