Skip to content

sohyunlee0102/MindStone

 
 

Repository files navigation

MindStone Backend (develop branch)

image

🧠 Mental Care Service with Your Own Stone

A service designed to help users manage their emotions and habits by growing a stone that reflects their feelings. It also generates a daily journal automatically by tracking emotions and activities.

Service Description

🪨 Target Users

  • Fans of character management games
  • People who don’t have time to write daily journals
  • Individuals aiming to build habits

🪨 Key Features

  1. Character Raising
    Customize your stone by choosing an emotion (happiness, anger, sadness, etc.) and adjust its intensity. Manage your stone based on these emotions.

  2. Emotion Management
    When the stone is upset, the app suggests stress management techniques that you've previously used or that other users recommend. You can track the time spent on each activity.

  3. Emotion & Activity Stats
    Provides easy-to-read statistics on your emotional and habitual progress over the week, month, etc.

  4. Emotion & Habit Calendar
    Tracks your emotional and habitual progress with a calendar view, making it easier to see trends.

  5. Automatic Journal
    Generates a daily journal from the activities and emotional states you tracked throughout the day. You can add photos and modify the content.

🗒️ Database Design

View ERD Diagram image

API Documentation

Swagger API Documentation

What I Did

  • Initial Setup & Architecture
    Set up the project, implemented custom error handlers, and designed consistent response logic.

  • User Authentication
    Implemented sign-up, login, and JWT token management using Spring Security.

  • Email Services
    Enabled email-based verification and temporary password recovery through the SMTP protocol.

  • User Onboarding
    Implemented a guided onboarding process for first-time users.

  • Profile Management
    Created functionalities for profile editing, logout, and account deletion in the “My Page” section.

  • Habit Tracking
    Implemented habit tracking, notifications, and modification features in “My Page.”

  • Push Notifications
    Developed habit reminders that notify users at their preferred times.

  • Data Security
    Created a blacklist to store tokens for users who have logged out or deleted their accounts to prevent token theft.

  • Automated User Deletion
    Used Spring Scheduler to automatically delete permanently deleted users and expired tokens from the blacklist.

Learned

  1. Collaboration Skills
    Gained experience collaborating with non-technical teams (PMs, designers, front-end developers). I learned how to write API documentation that is easy for front-end developers to understand using Swagger.

  2. MVC Pattern & Data Flow
    Honed my ability to design clean, efficient code by adhering to the MVC pattern and separating concerns between the layers.

  3. Git Flow Collaboration
    Improved my knowledge of Git Flow, enhancing my understanding of branch strategies for team collaboration.

  4. Code Readability
    Focused on writing clear and maintainable code so that team members could easily understand and build on it.

  5. Security Practices
    Strengthened my ability to design secure systems by using Spring Security for role-based access control, token management, and CORS configuration.

🚀 Technology Stack

  • Used Stacks: Spring Boot, Spring Security, Spring Data JPA, MySQL
  • Used Tools: Git, IntelliJ, EC2, RDS, Figma, Github Actions
  • Used Collaborations: Notion, Github, Discord

Implementaion Images

image image image image image image image image image image

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%