54 Commits

Author SHA1 Message Date
6c83c092b6 update menu file 2024-11-04 08:18:14 +05:30
b069513d96 update menu file 2024-10-21 13:17:04 +05:30
b41f6ff737 update menu file 2024-10-07 10:42:27 +05:30
d5aaa27cb7 update menu file 2024-09-23 11:12:54 +05:30
1b8ef493b8 update menu file 2024-09-09 16:35:03 +05:30
9bf1db4f05 update menu file 2024-09-09 16:32:46 +05:30
1e67a07845 update menu file 2024-09-09 15:09:52 +05:30
2943eef179 update menu file 2024-08-26 13:29:01 +05:30
9693de1842 update menu file 2024-08-13 11:13:14 +05:30
7b7389bce7 update menu file 2024-08-03 17:49:38 +05:30
86fd35915c update menu file 2024-08-03 17:49:09 +05:30
742a194363 update menu file 2024-07-08 12:35:37 +05:30
8c9d869a54 update menu file 2024-06-27 12:17:09 +05:30
d658f909c9 update menu file 2024-06-25 14:24:07 +05:30
2c496defa8 update menu file 2024-05-07 11:48:03 +05:30
a5e5ec8f21 update menu file 2024-05-07 11:47:31 +05:30
64ecf4c4a4 update menu file 2024-04-23 08:28:37 +05:30
ff3e07d60a update menu file 2024-04-22 17:11:45 +05:30
8c079f99e0 update menu file 2024-04-14 10:30:32 +05:30
0420bcd4dc update menu file 2024-04-14 10:29:36 +05:30
cb8611a44f update menu file 2024-03-26 09:43:21 +05:30
Phani Pavan Kambhampati
d01de9dedb Add omelete and fixes for receing format changes 2024-03-26 09:43:06 +05:30
16ce2d888c update menu file 2024-03-26 08:09:32 +05:30
caadacf5d7 update menu file 2024-03-11 13:01:06 +05:30
2125fcf2f5 update menu file 2024-02-26 10:11:31 +05:30
0393b0ea94 update menu file 2024-02-12 18:47:40 +05:30
Phani Pavan Kambhampati
f11c714743 Update scrapeToJson.py
To Accommodate format changes
2024-02-12 18:47:23 +05:30
092efa0024 update menu file 2024-02-12 15:42:18 +05:30
fbd1790d74 update menu file 2024-01-29 14:11:46 +05:30
033abc37e0 update menu file 2024-01-15 10:32:35 +05:30
7b7ff01ce5 update menu file 2024-01-02 11:52:22 +05:30
8c15adf460 update menu file 2023-12-04 18:24:53 +05:30
5b459c0a2b update menu file 2023-12-04 18:19:39 +05:30
1e7197e17a fix csv decode to parse latin-1 space 2023-12-04 18:18:49 +05:30
b8ed730c34 update menu file 2023-12-04 17:35:35 +05:30
4345ef27b6 fix conversion/compatibility strings 2023-12-04 17:34:44 +05:30
52fbe3d7f4 update menu file 2023-12-04 17:23:32 +05:30
ff9d6273bd fixed spelling 2023-11-20 12:24:24 +05:30
959ec8ad80 update menu file 2023-11-20 12:22:26 +05:30
4e0413dc12 fixed spelling 2023-11-06 12:27:41 +05:30
69c1aff5be manual edit 2023-11-06 12:23:10 +05:30
c3f051ca81 update menu file 2023-11-06 12:17:18 +05:30
52ddc45122 update menu file 2023-10-30 08:30:04 +05:30
9de7bdb1a8 update menu file 2023-10-09 11:55:35 +05:30
91017ee2ec Fixed menu 2023-09-25 09:37:03 +05:30
fb90f26fba Fix empty string identification 2023-09-25 09:35:22 +05:30
07cc5ce2f6 update menu file 2023-09-25 09:27:17 +05:30
0aa0a0a3f1 update menu file 2023-09-22 14:55:31 +05:30
Phani Pavan Kambhampati
28058432c1 Update scrapeToJson.py 2023-09-22 14:55:16 +05:30
d7db36df30 update menu file 2023-09-22 14:51:59 +05:30
Phani Pavan Kambhampati
771569e93d Delete .github/workflows/menu-file.yml 2023-09-22 14:47:50 +05:30
Phani Pavan Kambhampati
e0c4738a70 Create menu-file.yml 2023-09-02 12:41:50 +05:30
Phani Pavan Kambhampati
577d8afa75 Create README.md 2023-08-31 18:19:16 +05:30
9e11f1de67 initial commit 2023-08-31 18:05:22 +05:30
7 changed files with 193 additions and 0 deletions

48
.gitignore vendored Normal file
View File

@@ -0,0 +1,48 @@
# Miscellaneous
*.class
*.log
*.pyc
*.swp
.DS_Store
.atom/
.buildlog/
.history
.svn/
migrate_working_dir/
# IntelliJ related
*.iml
*.ipr
*.iws
.idea/
# The .vscode folder contains launch configuration and tasks you configure in
# VS Code which you may wish to be included in version control, so this line
# is commented out by default.
.vscode/
# Flutter/Dart/Pub related
**/doc/api/
**/ios/Flutter/.last_build_id
.dart_tool/
.flutter-plugins
.flutter-plugins-dependencies
.packages
.pub-cache/
.pub/
/build/
pubspec.lock
# Symbolication related
app.*.symbols
# Obfuscation related
app.*.map.json
# Android Studio will place build artifacts here
/android/app/debug
/android/app/profile
/android/app/release
# KDE Specific Files
.directory

9
README.md Normal file
View File

@@ -0,0 +1,9 @@
# IIITB_Menu Excel File Scraper Code
Code for building the bi-weekly food menu database for use in the web app.
Two files are created, one of them is the JSON database file `menu.json` and the other is the md5 hash of the json data `hash.txt`.
The app checks for update in hash and downloads the new menu file if required.
The menu stays persistently on the device's web cache allowing for offline app usage.
# Automation
The menu has to be downloaded from the shared Excel Online link as ODS, be loaded into pandas, save as CSV and pushed to this branch.
This will create a new release/file in the repo which are the sources for the web app.

40
menu.csv Normal file
View File

@@ -0,0 +1,40 @@
Unnamed: 0,Unnamed: 1,Unnamed: 2,Unnamed: 3,Unnamed: 4,Unnamed: 5,Unnamed: 6,Unnamed: 7,Unnamed: 8
 , ,MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY
 , ,2024-11-04 00:00:00,2024-11-05 00:00:00,2024-11-06 00:00:00,2024-11-07 00:00:00,2024-11-08 00:00:00,2024-11-09 00:00:00,2024-11-10 00:00:00
 , ,2024-11-11 00:00:00,2024-11-12 00:00:00,2024-11-13 00:00:00,2024-11-14 00:00:00,2024-11-15 00:00:00,2024-11-16 00:00:00,2024-11-17 00:00:00
BREAKFAST, , , , , , , , 
 ,BREAKFAST 1,IDLY,ALOO gobi PARATHA,masala Dosa/podi dosa,Veg uthappam,pesarattu with onion,bedmi puri,Aloo onion paratha
 ,BREAKFAST 2,Medu vada,Coleslaw Sandwich,Kesari bath without clove,Puli pongal,Masala Vada,Aloo sabzi,Veg sandwich
 ,SAMBAR OR KETCHUP,Veg sambar, ,sambar, Sambar,sambar,Semiya upma, 
 ,CURD, ,peanut chutney, ,coconut chutney,, ,Tomato chutney
 ,CHUTNEY,Coconut chutney,curd,coconut chutney,,coconut chutney,Coconut Chutney,CURD
 ,EGG,Boiled egg,Fruits,egg bhurji ,Watermelon Juice,omelette,Fruits, 
 ,JUICE/MILK SHAKE, ,, , , , , 
LUNCH, , , , , , , , 
,INDIAN BREAD,CHAPATHI,AJWANI CHAPATI,JEERA CHAPATI,Beetroot POORI,CORRIANDER CHAPATHI,Chapati,BHATURE
 ,VEG GRAVY,Black channa gravy,Gatta ki subji,Subz Lababdar,ALOO BHAJJI(normal style),Egg masala/ Soya masala,corn masala,PINDI CHOLE
 ,VEG DRY/ STARTERS,BHINDI kurkure,raw banana poriyal,Cabbage fry,chole masala dry,idly 65 with green chutney,Black channa dry,HARA BHARA KEBAB
 ,FLAVORED RICE,Puliogare,vangi bath,CURD RICE,TOMATO RICE,hyderabadi DUM BIRIYANI,masala bhat,tomato rice
 ,PLAIN RICE,PLAIN RICE,PLAIN RICE,PLAIN RICE,PLAIN RICE,PLAIN RICE,PLAIN RICE,PLAIN RICE
 ,DAL,moong dal,Yellow dal Tadka,GREEN MOONG DAL,LASOONI DAL TADKA,Dal Panchmel,Rajma Masala,Masoor Dal
 ,SAMBAR OR RASAM,Tomato RASAM,Malbar Cucumber SAMBAR,PEPPER RASAM,Pumpkin Sambhar,TOMATO RASAM,Peanut gun powder with ghee,Garlic rasam
 ,CURD BASE,Curd,curd,Lemonade,Curd,curd,majjiga pulusu,Sweet Lassi
 ,SALAD/SPROUTS,RED PASTA SALAD,ALOO CHANA CHAT,Sprout salad,Corn Capsicum Slad,dry chole,Tomato Green Salad,ONION\CHILLI\LEMON
 ,SWEETS,Chocolote/Vanilla Ice Cream,Strawberry milkshake,Mysore pak,Ice Cream,Assorted pastry,Moong Dal Halwa,Gulab Jamun
SNACKS, , , , , , , , 
,SNACKS,mix veg Bajji/ pakora,masala idly,veg puff,bhel puri,Dahi Papdi chat,Samosa,vada pav
 ,ACCOMPANIMENTS,green chutney,coconut chutney, ketchup,imli chutney ,green chutney,ketchup/imli,Mint chutney 
 ,TEA/COFFEE/MILK,TEA/COFFEE/MILK,TEA/COFFEE/MILK,TEA/COFFEE/MILK,TEA/COFFEE/MILK,TEA/COFFEE/MILK,TEA/COFFEE/MILK,TEA/COFFEE/MILK
DINNER, , , , , , , , 
,INDIAN BREAD,PUDINA CHAPATI,CHAPATI,coriander chapati,MASALA CHAPATI,Tandoori naan,paratha,METHI CHAPATHI
 ,VEG GRAVY,Baby corn & Mushroom masala gravy,baingan bharta,Veg Hyderbadi ,chole masala, ,Aloo Capsicum curry, Sabji lahori
 ,VEG DRY/ STARTERS,Mirchi ka Salan,masala aloo do pyaza,Rajma Ki tikki,Kadai Subzi,French fries,Gobi Manchurian dry ,
 ,FLAVORED RICE,Gobi biryani (biryani rice and gobi),Red sauce pasta live, ,bisibelle bhat & khara boondi,puliogere,schezwan noodles with sauce,Pudina rice
 ,PLAIN RICE,PLAIN RICE,PLAIN RICE,PLAIN RICE,PLAIN RICE,PLAIN RICE,Plain rice,PLAIN RICE
 ,DAL,DAL PALAK,DAL MAKHANI,Salan,BLACK DAL TADKA,DAL TADKA,dal makhani ,DAL TADKA
 ,SAMBAR OR RASAM,Tamil nadu style sambar,Podi with ghee,Khara kozhumbu,tomato rasam,bhindi sambhar,drumstick Sambar,MANGALORE CUCUMBER SAMBAR
 ,CURD BASE,Veg raita,CURD,VEG RAITA,Curd,Curd,curd,Curd
 ,SALAD/SPROUTS,Russian salad,Salad,corn and capsicum salad,Red sauce PASTA Salad,VEG CORN SALAD,Green salad,GREEN SALAD
 ,SWEETS,SOOJI HALWA,Moong dal halwa,Rice kheer,Fruit custard,Coconut Laddu,rava laddu ,rasmalai
 ,PANEER, ,,Paneer Biryani(panner with a gravy and salan), ,paneer tikka masala , ,palak paneer
 ,CHICKEN, , ,CHICKEN BIRYANI, ,chicken Tikka Masala, ,chicken biryani
1 Unnamed: 0 Unnamed: 1 Unnamed: 2 Unnamed: 3 Unnamed: 4 Unnamed: 5 Unnamed: 6 Unnamed: 7 Unnamed: 8
2 MONDAY TUESDAY WEDNESDAY THURSDAY FRIDAY SATURDAY SUNDAY
3 2024-11-04 00:00:00 2024-11-05 00:00:00 2024-11-06 00:00:00 2024-11-07 00:00:00 2024-11-08 00:00:00 2024-11-09 00:00:00 2024-11-10 00:00:00
4 2024-11-11 00:00:00 2024-11-12 00:00:00 2024-11-13 00:00:00 2024-11-14 00:00:00 2024-11-15 00:00:00 2024-11-16 00:00:00 2024-11-17 00:00:00
5 BREAKFAST
6 BREAKFAST 1 IDLY ALOO gobi PARATHA masala Dosa/podi dosa Veg uthappam pesarattu with onion bedmi puri Aloo onion paratha
7 BREAKFAST 2 Medu vada Coleslaw Sandwich Kesari bath without clove Puli pongal Masala Vada Aloo sabzi Veg sandwich
8 SAMBAR OR KETCHUP Veg sambar sambar Sambar sambar Semiya upma
9 CURD peanut chutney coconut chutney Tomato chutney
10 CHUTNEY Coconut chutney curd coconut chutney coconut chutney Coconut Chutney CURD
11 EGG Boiled egg Fruits egg bhurji Watermelon Juice omelette Fruits
12 JUICE/MILK SHAKE
13 LUNCH
14 INDIAN BREAD CHAPATHI AJWANI CHAPATI JEERA CHAPATI Beetroot POORI CORRIANDER CHAPATHI Chapati BHATURE
15 VEG GRAVY Black channa gravy Gatta ki subji Subz Lababdar ALOO BHAJJI(normal style) Egg masala/ Soya masala corn masala PINDI CHOLE
16 VEG DRY/ STARTERS BHINDI kurkure raw banana poriyal Cabbage fry chole masala dry idly 65 with green chutney Black channa dry HARA BHARA KEBAB
17 FLAVORED RICE Puliogare vangi bath CURD RICE TOMATO RICE hyderabadi DUM BIRIYANI masala bhat tomato rice
18 PLAIN RICE PLAIN RICE PLAIN RICE PLAIN RICE PLAIN RICE PLAIN RICE PLAIN RICE PLAIN RICE
19 DAL moong dal Yellow dal Tadka GREEN MOONG DAL LASOONI DAL TADKA Dal Panchmel Rajma Masala Masoor Dal
20 SAMBAR OR RASAM Tomato RASAM Malbar Cucumber SAMBAR PEPPER RASAM Pumpkin Sambhar TOMATO RASAM Peanut gun powder with ghee Garlic rasam
21 CURD BASE Curd curd Lemonade Curd curd majjiga pulusu Sweet Lassi
22 SALAD/SPROUTS RED PASTA SALAD ALOO CHANA CHAT Sprout salad Corn Capsicum Slad dry chole Tomato Green Salad ONION\CHILLI\LEMON
23 SWEETS Chocolote/Vanilla Ice Cream Strawberry milkshake Mysore pak Ice Cream Assorted pastry Moong Dal Halwa Gulab Jamun
24 SNACKS
25 SNACKS mix veg Bajji/ pakora masala idly veg puff bhel puri Dahi Papdi chat Samosa vada pav
26 ACCOMPANIMENTS green chutney coconut chutney ketchup imli chutney green chutney ketchup/imli Mint chutney 
27 TEA/COFFEE/MILK TEA/COFFEE/MILK TEA/COFFEE/MILK TEA/COFFEE/MILK TEA/COFFEE/MILK TEA/COFFEE/MILK TEA/COFFEE/MILK TEA/COFFEE/MILK
28 DINNER
29 INDIAN BREAD PUDINA CHAPATI CHAPATI coriander chapati MASALA CHAPATI Tandoori naan paratha METHI CHAPATHI
30 VEG GRAVY Baby corn & Mushroom masala gravy baingan bharta Veg Hyderbadi chole masala Aloo Capsicum curry Sabji lahori
31 VEG DRY/ STARTERS Mirchi ka Salan masala aloo do pyaza Rajma Ki tikki Kadai Subzi French fries Gobi Manchurian dry
32 FLAVORED RICE Gobi biryani (biryani rice and gobi) Red sauce pasta live bisibelle bhat & khara boondi puliogere schezwan noodles with sauce Pudina rice
33 PLAIN RICE PLAIN RICE PLAIN RICE PLAIN RICE PLAIN RICE PLAIN RICE Plain rice PLAIN RICE
34 DAL DAL PALAK DAL MAKHANI Salan BLACK DAL TADKA DAL TADKA dal makhani DAL TADKA
35 SAMBAR OR RASAM Tamil nadu style sambar Podi with ghee Khara kozhumbu tomato rasam bhindi sambhar drumstick Sambar MANGALORE CUCUMBER SAMBAR
36 CURD BASE Veg raita CURD VEG RAITA Curd Curd curd Curd
37 SALAD/SPROUTS Russian salad Salad corn and capsicum salad Red sauce PASTA Salad VEG CORN SALAD Green salad GREEN SALAD
38 SWEETS SOOJI HALWA Moong dal halwa Rice kheer Fruit custard Coconut Laddu rava laddu rasmalai
39 PANEER Paneer Biryani(panner with a gravy and salan) paneer tikka masala palak paneer
40 CHICKEN CHICKEN BIRYANI chicken Tikka Masala chicken biryani

1
out.json Normal file

File diff suppressed because one or more lines are too long

1
out.txt Normal file
View File

@@ -0,0 +1 @@
062a26609c110a8702f29f555c26f6ff

2
requirements.txt Normal file
View File

@@ -0,0 +1,2 @@
numpy
pandas

92
scrapeToJson.py Normal file
View File

@@ -0,0 +1,92 @@
import pandas
import numpy
import datetime
import json
import hashlib
ALLDAYS = [
"SUNDAY",
"MONDAY",
"TUESDAY",
"WEDNESDAY",
"THURSDAY",
"FRIDAY",
"SATURDAY",
]
if __name__ == "__main__":
#! TODO: Find a better XLSX import process. XLS IS ASS
# mainData = pandas.read_excel("menu.ods")
mainData = pandas.read_csv("menu.csv", skiprows=1)
mainData = mainData.replace("\xa0", numpy.nan)
breaksLoc = numpy.where(pandas.isna(mainData["\xa0"]).to_numpy() == False)[0]
breaksLoc = numpy.append(breaksLoc, [len(mainData)])
print(breaksLoc)
rowNames = mainData["\xa0.1"].to_numpy()
finalData = {"menu": {}, "dates": {}, "items": {}}
for sesNum, ses in enumerate(["bf", "ln", "sk", "dn"]):
finalData["items"][ses] = mainData["\xa0.1"].to_list()[
breaksLoc[sesNum] + 1 : breaksLoc[sesNum + 1]
]
for dayNumber, eachDay in enumerate(ALLDAYS):
print(eachDay)
for aDate in mainData[eachDay][: breaksLoc[0]]:
# print(type(aDate))
# aDate = str(aDate.to_pydatetime().date().strftime("%d-%m-%Y"))
aDate = str(
datetime.datetime.strptime(aDate, "%Y-%m-%d %H:%M:%S")
.date()
.strftime("%d-%m-%Y")
)
finalData["dates"][aDate] = str(dayNumber)
# print(finalData, rowNames, breaksLoc)
currentMenu = {"bf": {}, "ln": {}, "sk": {}, "dn": {}}
if eachDay in ["SUNDAY", "SATURDAY"]:
currentMenu["bfTimings"] = {"start": "07:45AM", "end": "10:00AM"}
currentMenu["lnTimings"] = {"start": "12:45PM", "end": "02:30PM"}
currentMenu["skTimings"] = {"start": "04:30PM", "end": "05:45PM"}
currentMenu["dnTimings"] = {"start": "07:30PM", "end": "09:30PM"}
else:
currentMenu["bfTimings"] = {"start": "07:30AM", "end": "09:45AM"}
currentMenu["lnTimings"] = {"start": "12:30PM", "end": "02:15PM"}
currentMenu["skTimings"] = {"start": "04:30PM", "end": "05:45PM"}
currentMenu["dnTimings"] = {"start": "07:30PM", "end": "09:30PM"}
for i, ses in enumerate(["BREAKFAST", "LUNCH", "SNACKS", "DINNER"]):
# print(ses)
for item in rowNames[breaksLoc[i] + 1 : breaksLoc[i + 1]]:
part = (
mainData.loc[breaksLoc[i] + 1 : breaksLoc[i + 1]]
.loc[mainData[" .1"] == item][eachDay]
.item()
)
if isinstance(part, float) and (part is numpy.nan):
part = "MT"
if part.strip() == "":
part = "MT"
# print(f"{item}: {part}")
if (
"egg" in part.strip().lower()
or "omlet" in part.strip().lower()
or "omelet" in part.strip().lower()
):
print(f"EGG Found, {part} at {ses}")
eggy = "EGG"
elif "chicken" in part.strip().lower():
eggy = "NON"
print(f"Chicken Found, {part} at {ses}")
else:
eggy = "VEG"
currentMenu[list(currentMenu.keys())[i]][item] = {
"name": part.strip().title(),
"eggy": eggy,
}
# print()
finalData["menu"][dayNumber] = currentMenu
# print(finalData)
with open("out.json", "w+") as jsonWriter:
json.dump(finalData, jsonWriter)
with open("out.txt", "w+") as hashWriter:
hashWriter.write(hashlib.md5(json.dumps(finalData).encode("utf-8")).hexdigest())