A module for the MagicMirror² framework that retrieves a school meal menu from the LinqConnect API (api.linqconnect.com). LinqConnect was formerly known as "Titan Schools" (family.titank12.com).
Clone MMM-TitanSchoolMealMenu
into the modules folder of your MagicMirror² installation:
cd ~/MagicMirror/modules
git clone https://github.com/evanhsu/MMM-TitanSchoolMealMenu
npm install
Go to the MMM-TitanSchoolMealMenu
folder inside MagicMirror² modules folder and pull the latest version from GitHub:
cd ~/MagicMirror/modules/MMM-TitanSchoolMealMenu
git pull
npm install
Restart MagicMirror² after updating.
Add this to your MagicMirror² config.js
:
{
module: "MMM-TitanSchoolMealMenu",
position: "top_left",
header: "School Menu",
config: {
size: 'medium', // Optional: 'small', 'medium', 'large'; Default: 'medium'
buildingId: '23125610-cbbc-eb11-a2cb-82fe13669c55',
districtId: '93f76ff0-2eb7-eb11-a2c4-e816644282bd',
updateIntervalMs: 3600000, // Optional: Milliseconds between updates; Default: 3600000 (1 hour)
numberOfDaysToDisplay: 3, // Optional: 0 - 5; Default: 3
recipeCategoriesToInclude: [
"Entrees",
"Grain"
// , "Fruit"
// , "Vegetable"
// , "Milk"
// , "Condiment"
// , "Extra"
],
debug: false // Optional: boolean; Default: false; Setting this to true will output verbose logs
},
},
You can also track multiple school menus by listing the module multiple times in your config.js
file (each config will probably have a different buildingId
/districtId
):
{
module: "MMM-TitanSchoolMealMenu",
position: "top_right",
header: "The Derek Zoolander Center for Kids Who Can't Read Good and Wanna Learn to Do Other Stuff Good Too.",
config: {
buildingId: '7833a90f-a4bc-eb11-a2cb-8711b287b526',
districtId: '93f76ff0-2eb7-eb11-a2c4-e816644282bd',
},
},
{
module: "MMM-TitanSchoolMealMenu",
position: "top_left",
header: "School for Kid #1",
config: {
buildingId: "9017b6ae-a3bc-eb11-a2cb-82fe13669c55",
districtId: "93f76ff0-2eb7-eb11-a2c4-e816644282bd",
}
},
These are the possible options:
Option | Description |
---|---|
buildingId |
The buildingId found on the LinqConnect webpage. REQUIRED NOTE: See Finding your |
districtId |
The districtId found on the LinqConnect webpage. REQUIRED NOTE: See Finding your |
retryDelayMs |
How long to wait to retry after an error from the API. Type: |
updateIntervalMs |
The time in milliseconds when the menu should be updated. Type: |
numberOfDaysToDisplay |
The number of days to display menu items. Type: Note: If |
size |
The css class for the font size. Type: Note: You can use any css class here, not just font sizes. |
todayClass |
The css class for today's meal. Type: Note: You can use any css class here, not just font sizes. |
displayCurrentWeek |
Display meals starting from the first day of the week instead of today. Type: |
weekStartsOnMonday |
Show Monday as the first day of the week. Set to Type: |
hideEmptyDays |
Hide days without any meals. Type: |
hideEmptyMeals |
Hide meals that are empty. Type: |
recipeCategoriesToInclude |
An array of recipe categories to display. Type: Note: Your district might not use the categories in this module. You will need to find the categories by visting the website. Note 2: If this is blank ( |
debug |
Setting this to Type: |
- Go to the LinqConnect webpage and search for your school district: https://linqconnect.com/
- Select your school from the dropdown and use your browser's developer tools to inspect the resulting request to the
/FamilyMenu
endpoint. ThedistrictId
andbuildingId
will be present as query string parameters on this requests.