Emotion Tracker is a web application that allows users to track and analyze their emotions over time. Users can log in and record their emotions, including the intensity of the emotion, sub-emotions, and triggers that contributed to the emotion. They can also view their emotion history and analyze trends in their emotions over time.
- User authentication: Users can log in and securely authenticate their identity using JWT tokens.
- Emotion recording: Users can record their emotions, including the intensity of the emotion, sub-emotions, and triggers that contributed to the emotion.
- Emotion history: Users can view a history of their recorded emotions.
- Trend analysis: Users can analyze trends in their emotions over time using charts and graphs.
- Play Framework: A web application framework for the Scala programming language.
- MySQL: An open-source relational database management system.
- Anorm: A Scala library for interacting with relational databases.
- JWT: A JSON-based authentication protocol used to secure web applications.
- Angular: A TypeScript-based open-source web application framework.
- JDK 11 or later
- sbt 1.5.5 or later
- MySQL 8.0 or later
npm install --save
- Clone the repository:
git clone https://github.com/<username>/emotion-tracker.git
- Change into the project directory:
cd emotion-tracker
- Create the database using docker :
docker compose up -d db
- Set the database connection properties in
conf/application.conf
. - Start the application:
sbt run
- Navigate to
http://localhost:4200
in a web browser. - Log in with your user credentials or sign up for a new account.
- Record your emotions using the web interface.
- View your emotion history and analyze trends over time.
Run docker container with colima start
- Run the local server with
sbt run
- Run the performance test with
sbt gatling:test
Contributions to Emotion Tracker are welcome and encouraged! To contribute, please follow these steps:
- Fork the repository on GitHub.
- Create a new branch for your feature or bug fix.
- Write tests for your changes to ensure that they don't break existing functionality.
- Implement your feature or bug fix.
- Push your changes to your fork.
- Submit a pull request to the main repository.
This project is licensed under the GNU General Public License v3.0 - see the LICENSE.txt file for details.