This project aims to create a user-friendly web application that utilizes machine learning to detect emotions through a webcam. The application, containerized using Docker for ease of deployment, employs Flask for the backend and HTML, CSS, and JavaScript for the frontend. Users grant webcam access, and upon clicking the "Capture" button, the system analyzes their emotion. Depending on the detected emotion, users are dynamically redirected to corresponding emotion-themed pages. The project showcases the integration of machine learning in a web application, offers a responsive UI, and can be deployed on various platforms using Docker containers, making it a versatile and engaging prototype for emotion-aware applications.
The machine-learning-client logs facial data into the mongo container,
while the web-app just logs a simple message.
The machine-learning-client
can be made to save data into mongo via clicking any of the 'how are you doing'
buttons, and the web-app will save data in the 'fancy-town' route, via pressing the
'are you looking fancy' button
Pull from Docker Hub: docker pull ayl2015/emotionsapp:v1.0
To run the project:
- clone the repository, and make sure Docker is installed
- run
docker-compose up --build
in the main directory - access the web-app from
http://localhost:3001
- click on a button to process the emotion!!
To test the machine-learning-client or the web app
- cd to the relevant directory
- run
pytest tests.py