Final Exam Project – Technology A – Vejle Technical Gymnasium
A semi-functional smart mirror prototype combining AI, voice control, outfit suggestions, and a modular display – built during final exams and awarded Grade 12 (highest possible in Denmark).
This project was our final exam for the Technology A class in HTX (Vejle Tekniske Gymnasium).
The goal was to build an intelligent smart mirror that could help users pick clothes efficiently, reduce unused wardrobe items, and provide a luxury-level, modern tech experience.
The system is divided into two main parts:
Due to hardware limitations on the Raspberry Pi, the AI voice assistant runs on a standard computer. It:
- Listens to the user through a GUI.
- Uses Google Gemini Pro to answer questions and the Neuralintents library to detect commands.
- Speaks back using ElevenLabs Text-to-Speech.
- Sends commands to the Raspberry Pi (like changing pages on the mirror).
The Raspberry Pi runs the MagicMirror² software, which displays time, weather, outfit images, and more. It also:
- Receives API commands from the AI assistant or mobile phone.
- Displays suggested outfits using a custom image generator.
⚠️ Due to a limited project budget, we only had access to a Raspberry Pi 3, which could not handle the AI load. The AI was therefore offloaded to a PC. With a Raspberry Pi 4 or 5, everything could have run directly on the Pi as originally intended.
The mirror hardware itself was assembled using materials funded by the school. Since they covered all expenses, the final physical product was handed over after the exam. This project is no longer being developed, but the code remains available for educational purposes.
-
Clone the repository:
git clone https://github.com/JAQ0B/Smart-Mirror.git cd Smart-Mirror -
Install dependencies:
pip install -r requirements.txt
-
Set up environment variables:
- Copy
.env.exampleto.env - Add your Gemini and ElevenLabs API keys.
- Copy
-
Run
mm.shto start everything:chmod +x mm.sh ./mm.sh
-
Run
mm.shon startup:crontab -e @reboot /home/pi/Smart-Mirror/mm.sh
The outfit suggestion system uses a cleaned version of the Fashion Product Images Dataset.
Due to file size, the images are not included in this repository.
If you want to use your own dataset:
- Download the dataset via the link above.
- Place the image files in: Raspberry/ClothingSuggestion/Images/
- Ensure filenames match the ID in
clothing_dataset.csv.
You can also modify the clothing_dataset.csv to match your custom image set.
The smart mirror interface is powered by MagicMirror², a Node.js-based modular mirror framework.
As configured in our config.js :
- MMM-Remote-Control – Enables remote API control of MagicMirror.
- MMM-pages – Organizes the display into multiple pages with different layouts.
- MMM-page-indicator – Visual indicator showing which page is currently active.
- MMM-weatherchart – Shows a 24-hour weather forecast including precipitation, wind, and temperature.
- MMM-YrThen – Displays a 5-day weather forecast from Yr.no.
- MMM-SimpleLogo – Displays the recommended outfit image.
- MMM-ImagesPhotos – Shows static clothing images from the wardrobe.
- MMM-OnSpotify – Integrates Spotify to show current track, album art, and artist info.
- MMM-LiveLyrics – Displays live lyrics for the currently playing song on Spotify.
Additionally, we used 3 of MagicMirror’s default modules:
- Clock
- Weather
- Calendar
Below are simplified diagrams showing the software components split across the PC and Raspberry Pi.
Software flow – PC (AI & voice control)
Software flow – Raspberry Pi (Mirror control + Flask + Outfit display)
The project was documented in a full 150+ page report for the final exam. It includes research, design decisions, budget, target audience analysis, technical development, and evaluation.
📄 Teknologi A – Eksamensprojekt (PDF)
This is a one-off prototype built for educational purposes.
The school provided funding for materials and has retained ownership of the physical smart mirror.
This repository and its contents will not be further updated.
This project is released under the MIT License.
See LICENSE for more details.
- Jacob Stahlfest Jørgensen
- Max Hedeager Jensen
- Rose Marie Bjerre
- Lars Pedersen
Developed at Vejle Tekniske Gymnasium – Spring 2024

