BeautyMinder is the culmination of our capstone design class, commenced in September 2023.
A comprehensive cosmetics management app, meticulously tuned to individual skin types as determined through the Baumann skin type assessment.
It integrates advanced technologies such as Flutter, AWS EC2, MongoDB, and Redis to provide a seamless and personalized user experience.
BeautyMinderλ 2023λ 9~12μ, 3λ¬κ° μ μλ μΊ‘μ€ν€ λμμΈ μμ μ κ²°κ³Όλ¬Όμ λλ€.
Baumann νΌλΆ μ ν νκ°λ₯Ό κΈ°λ°μΌλ‘ ν κ°λ³ νΌλΆ μ νμ λ§μΆ μ’ ν©μ μΈ νμ₯ν κ΄λ¦¬ μ ν리μΌμ΄μ μ λλ€.
Flutter, Docker, ELK, Redis λ±μ κΈ°μ μ ν΅ν©νμ¬ μ¬μ©μμκ² λ§μΆ€ν κ²½νμ μ 곡ν©λλ€.
- Expiry Tracking (μ ν΅κΈ°ν κ΄λ¦¬): Automate management of product lifecycles with integrated expiration date monitoring.
- OCR Integration: Streamline product registration using Optical Character Recognition for effortless management.
- Alerts & Reminders (μ ν΅κΈ°ν λ§λ£ μλ¦Ό): Receive alerts for impending product expirations and routine reminders, enhancing personal skincare discipline.
- Skincare Diary (λ£¨ν΄ κΈ°λ₯): Document and track your skincare journey with timeline and album features, observing tangible skin transformations.
- Discover Your Skin Type (λ°μ°λ§ νμ λΆμ): Discover your unique skin type through the Baumann skin type assessment.
- Customized Recommendations (λ°μ°λ§ νμ μ λ°λ₯Έ μΆμ²): Receive tailored product suggestions aligned with your specific skin type needs.
- Summarized Reviews via GPT (GPT 리뷰 μμ½): Gain insights with AI-powered summaries of comprehensive product reviews.
- Websocket Integration (λ°μ°λ§ μ€μκ° μ±ν ): Engage in active discussions with peers sharing similar Baumann skin types for communal knowledge exchange.
Important
Flutter, Spring Boot v3.1
Area | Technology |
---|---|
Frontend | Flutter |
Backend | AWS EC2 (Docker: Spring Boot+Redis+Logstash+FastAPI) |
Database | MongoDB (hosted on Atlas), AWS S3 |
Real-Time Metrics | Redis |
WebSocket | STOMP |
Search Engine | Elasticsearch (AWS OpenSearch) |
Log analysis | Logstash, Kibana (AWS OpenSearch Dashboard) |
Text Summarization | GPT API |
Image OCR | Google Cloud Vision |
Notification Svcs | Naver Cloud SMS API, SMTP Protocol |
DevOps | JUnit5, Locust, GitHub Actions, AWS Elastic LoadBalancer |
- Individual Question Score Calculation:
For each question in the survey, a score is calculated based on the selected option. The scoring function can be represented as:
For certain two-choice questions, a different rule applies:
- Aggregate Category Scores:
For each category (A, B, C, D), the total score is the sum of the individual question scores within that category. If (n) is the number of questions in a category, and (q_i) represents each question:
- Moisture Score Calculation:
The moisture score is calculated specifically from certain questions, represented as (m_i). If we assume there are (k) questions contributing to the moisture score:
- Skin Type Determination:
Each category score is compared to a threshold to determine the skin type descriptor. This can be represented with the following conditions:
- Result Compilation:
The final skin type is a string concatenation of the individual skin type descriptors from each category, represented as:
Important
μμ νλ’ + N-gram
ocr.mp4
Name | Role | Major |
---|---|---|
Jieun Lee (LeeZEun) | Frontend | Software Engineering |
Suji Bae (Bae-suji) | Frontend | Software Engineering |
Yoon Wook Cho (yoonwook) | Frontend | Software Engineering |
Heesang Kwak (KWAKMANBO) | Frontend | Software Engineering |
Seok Won Choi (Alfex4936) | Backend | Software Engineering |
This project is licensed under the MIT license. Feel free to edit and distribute this template as you like.