MindScribe is a platform designed to provide its users with a safe space for journaling and to encourage mental wellbeing and awareness by generating personalized insights based on the user input.
The main purpose of this final project for the Top Up Bachelor’s Degree study program was to put in practice all the theory, skills and knowledge that I have gained during my education. In completing this project, I not only used the skills and knowledge that I already possessed, but I also stepped out of my comfort zone and learned new skills and information across diverse areas.
I chose to do this project on my own, in order to test myself and what I have learned during my studies and whether there are any areas where I was lacking or needed some improvement. Throughout the development of this project, I fulfilled the roles of the designer, the developer and the evaluator, therefore undertaking all aspects of the project.
The application that I designed and implemented aims to create an engaging and meaningful experience for its users and to promote emotional well-being and self awareness through its features.
The initial sketches for the pages of the application were drawn by hand, and then wireframes and an initial prototype were completed in Figma. Version control was handled through Git, GitHub and GitHub Desktop. The front end application was built using React.js, React Router DOM, Tailwind CSS, and Tailwind Elements. The backend was built using Node.js and Express.js, while for authentication and session management purposes I used JSON Web Tokens (JWT). The project has a combination of two databases – a PostgreSQL database for storing structured data like user profiles, mood tracker entities, questions, questionnaires, etc. and a MongoDB database for storing unstructured data like full journal entries and sentiment analysis results.
To analyze journal entries I used Sentiment.js. The libraries that I used for generating charts regarding personalized insights of the user are Chart.js and React-Chartjs-2. When it comes to testing, I used Postman to test the API endpoints, and a combination of Mocha and Chai.js to perform backend testing. The project is deployed on Render.com (link) and for this purpose I created a CI/CD pipeline using GitHub Actions.
My project was graded with the highest degree according to Danish grading system by the two examiners. You can see the full report that I wrote here. The following credentials can be used for testing the application: email – [email protected], password – FranksPassword.