release 1.0
基础功能包含登陆、注册、发帖、回帖、通知系统、管理员系统、个人主页模块发布。
What's Changed
- Add initial Spring Boot backend with JWT by @nagisa77 in #1
- Add email verification and JSON errors by @nagisa77 in #2
- Handle JWT auth failure with 401 response by @nagisa77 in #3
- Add role-based authorization by @nagisa77 in #4
- Add Post module by @nagisa77 in #5
- Add curl examples for testing APIs by @nagisa77 in #6
- Add comment module by @nagisa77 in #7
- Add reaction module by @nagisa77 in #8
- Add curl examples to comment and reaction controllers by @nagisa77 in #9
- Return 401 when admin role missing by @nagisa77 in #10
- Add controller tests by @nagisa77 in #11
- Add auth failure cases for hello and admin controllers by @nagisa77 in #12
- Add comments and reactions to post detail by @nagisa77 in #13
- Fix AccessDeniedHandler usage in MVC tests by @nagisa77 in #14
- Fix PostControllerTest missing mocks by @nagisa77 in #15
- Add complex integration tests by @nagisa77 in #16
- Fix complex test case failure by @nagisa77 in #17
- Fix anonymous access for post and comment retrieval by @nagisa77 in #18
- Add Post categories by @nagisa77 in #19
- Fix category creation in integration tests by @nagisa77 in #20
- Add pluggable email and image upload by @nagisa77 in #21
- Implement async COS upload by @nagisa77 in #22
- Implement image upload validation by @nagisa77 in #23
- Add article publish review mode by @nagisa77 in #24
- Fix CosImageUploader test by @nagisa77 in #25
- Fix admin post integration test auth by @nagisa77 in #26
- Improve README by @nagisa77 in #27
- Add user posts and replies endpoints by @nagisa77 in #28
- Add password strength configuration by @nagisa77 in #29
- Add low strength password length check and tests by @nagisa77 in #30
- Update integration test passwords by @nagisa77 in #31
- Implement captcha config endpoint by @nagisa77 in #33
- Add endpoint to list reaction types by @nagisa77 in #34
- Add aggregated user data endpoint by @nagisa77 in #35
- Add post listing filters and pagination by @nagisa77 in #36
- Add search module by @nagisa77 in #37
- Fix captcha dependency in tests by @nagisa77 in #38
- Fix search endpoint access by @nagisa77 in #39
- Fix duplicate posts in global search by @nagisa77 in #40
- Add tag module with post associations by @nagisa77 in #41
- Add icon and description to tags and categories by @nagisa77 in #42
- Add note on tag management by @nagisa77 in #43
- Add update APIs for tags and categories by @nagisa77 in #44
- Add tag and category post listing APIs by @nagisa77 in #45
- Add complex controller test cases by @nagisa77 in #46
- Fix integration tests for required category/tag fields by @nagisa77 in #47
- Fix controller tests by @nagisa77 in #48
- Add notification module by @nagisa77 in #49
- Add notification module tests by @nagisa77 in #50
- Fix PostControllerTest for unauthenticated view by @nagisa77 in #51
- Implement subscriptions by @nagisa77 in #52
- Add Vue Router and basic layout components by @nagisa77 in #53
- Add Message and About views by @nagisa77 in #54
- Add post view page by @nagisa77 in #55
- Use arrays for home & post views by @nagisa77 in #56
- Add post scroller to PostPageView by @nagisa77 in #57
- Customize range slider style by @nagisa77 in #58
- Add login/signup routes by @nagisa77 in #59
- Add nested comment support by @nagisa77 in #60
- Add Vditor comment support by @nagisa77 in #61
- Add reusable comment editor component by @nagisa77 in #62
- Enable markdown display by @nagisa77 in #63
- Sanitize homepage descriptions by @nagisa77 in #64
- Add link copy and comment anchor support by @nagisa77 in #65
- Add post creation view using Vditor by @nagisa77 in #66
- Fix Vditor init timing by @nagisa77 in #67
- Add category and tag selection on post form by @nagisa77 in #68
- Integrate email signup/login frontend by @nagisa77 in #69
- Make API base URL configurable by @nagisa77 in #70
- Improve registration form validation by @nagisa77 in #71
- Add toast notifications by @nagisa77 in #72
- Fix 403 on register by enabling CORS by @nagisa77 in #73
- Add token check API and client auth module by @nagisa77 in #74
- Add avatar dropdown by @nagisa77 in #75
- Fix reactive login UI by @nagisa77 in #76
- Add Google OAuth login by @nagisa77 in #77
- Add Google auth integration by @nagisa77 in #78
- Fix Google Auth compile error by @nagisa77 in #79
- Add small icon support for categories and tags by @nagisa77 in #80
- Add dropdown components for post creation by @nagisa77 in #81
- Fix reserved keywords in MySQL schema by @nagisa77 in #82
- Limit tags and integrate post publish by @nagisa77 in #83
- Add draft post feature by @nagisa77 in #84
- Fix draft deletion 400 error by @nagisa77 in #85
- Fix 400 error when fetching draft by @nagisa77 in #86
- Fix editor draft loading by @nagisa77 in #87
- Fix header widths by @nagisa77 in #88
- Connect frontend to backend post APIs by @nagisa77 in #89
- Return full category and tag objects in post API by @nagisa77 in #90
- Fix comment editor vditor instance by @nagisa77 in #91
- Add disabled and loading state to comment editor by @nagisa77 in #92
- Add author details in post and comment APIs by @nagisa77 in #93
- Add timeline component by @nagisa77 in #94
- Add dark mode toggle by @nagisa77 in #95
- Implement toast on copy and wait comment anchor by @nagisa77 in #96
- Fix nested comment links by @nagisa77 in #97
- Improve notification API response by @nagisa77 in #98
- Improve comment reply notification display by @nagisa77 in #99
- Fix nested comment link expansion by @nagisa77 in #100
- Add comment timeline component with avatars by @nagisa77 in #101
- fix: restore scroll index tracking by @nagisa77 in #102
- Fix scroll index update with BaseTimeline by @nagisa77 in #104
- Add unread notification count by @nagisa77 in #105
- Add user settings page and admin config API by @nagisa77 in #106
- Add loading spinner to dropdown component by @nagisa77 in #107
- Refactor auth inputs and avatar style by @nagisa77 in #108
- Support icon classes in dropdown menu by @nagisa77 in #109
- Enforce minimal username length by @nagisa77 in #111
- Preview avatar before upload by @nagisa77 in #112
- Fix admin dropdown defaults & input focus style by @nagisa77 in #113
- Add markdown css by @nagisa77 in #114
- Make ArticleTags reusable by @nagisa77 in #115
- Implement searchable dropdown by @nagisa77 in #116
- Fix dropdown search slot update by @nagisa77 in #117
- Improve search result details by @nagisa77 in #119
- Implement navigation for search dropdown by @nagisa77 in #120
- Update comment search link by @nagisa77 in #121
- Add expand/collapse toggle for replies by @nagisa77 in #122
- Implement user profile page with real data by @nagisa77 in #123
- Fix MySQL timestamp issue by @nagisa77 in #124
- Fix profile page unauthorized error by @nagisa77 in #125
- Fix user lookup by id by @nagisa77 in #126
- Fix profile navigation and persist user info by @nagisa77 in #127
- Add snippet preview settings and enrich comment info by @nagisa77 in #128
- Improve timeline details on profile page by @nagisa77 in #129
- Update timeline formats by @nagisa77 in #130
- Add icon click handler to timeline by @nagisa77 in #131
- Add topic switching placeholders by @nagisa77 in #132
- Add reaction panel by @nagisa77 in #133
- Add read/unread indicator on messages by @nagisa77 in #134
- Add infinite scroll for posts by @nagisa77 in #135
- Allow multiple reactions per user by @nagisa77 in #136
- Fix duplicate reaction creation by @nagisa77 in #137
- Add frontend time manager by @nagisa77 in #138
- Allow multiple reactions by @nagisa77 in #139
- Improve reaction notification detail by @nagisa77 in #140
- Implement filters on home page by @nagisa77 in #141
- Fix post filtering logic by @nagisa77 in #142
- Add none option for category and tag selectors by @nagisa77 in #143
- Implement ranking posts by views by @nagisa77 in #144
- Support tag/category filters for ranking by @nagisa77 in #145
- Improve about page by @nagisa77 in #146
- Fix SearchControllerTest for SearchResult record change by @nagisa77 in #147
- Fix PostControllerTest by mocking DraftService by @nagisa77 in #148
- Fix integration tests with valid usernames by @nagisa77 in #156
- Fix PasswordValidator tests by @nagisa77 in #155
- Fix NotificationControllerTest by @nagisa77 in #154
- Fix PublishModeIntegrationTest user verification by @nagisa77 in #152
- Fix NotificationControllerTest JSONPath by @nagisa77 in #151
- Fix SearchService NPE in tests by @nagisa77 in #150
- Fix user controller tests by @nagisa77 in #149
- Fix integration tests by using valid usernames by @nagisa77 in #153
- Fix null content handling in UserController by @nagisa77 in #157
- Fix user replies test to set post category by @nagisa77 in #158
- Implement tag creation by normal users by @nagisa77 in #159
- Clear dropdown search after selection by @nagisa77 in #162
- Improve tag creation error handling on publish by @nagisa77 in #163
- Enhance category and tag dropdowns by @nagisa77 in #164
- Change tag filter to AND logic by @nagisa77 in #165
- Add query parameter support for home page by @nagisa77 in #166
- Add ArticleCategory and enable tag/category filtering by @nagisa77 in #167
- Fix filter dropdown preloading by @nagisa77 in #168
- Fix category filter initialization by @nagisa77 in #169
- Implement participants display by @nagisa77 in #170
- Implement profile follow tab by @nagisa77 in #171
- Implement follow/unfollow by @nagisa77 in #172
- Fix follow action for numeric user ids by @nagisa77 in #173
- Add follow notification details by @nagisa77 in #174
- Add dropdown menu for article actions by @nagisa77 in #176
- Add post subscription notifications by @nagisa77 in #177
- Update reaction feature by @nagisa77 in #178
- Improve notification text by @nagisa77 in #179
- Implement post and tag review workflow by @nagisa77 in #182
- Fix tag publishing in review mode by @nagisa77 in #183
- Implement post review notifications by @nagisa77 in #184
- Implement conditional menu items by @nagisa77 in #185
- Implement deletion for posts and comments by @nagisa77 in #186
- Add BasePlaceholder component for empty states by @nagisa77 in #187
- Add category and tag sections to menu by @nagisa77 in #188
- Allow admin delete on FE by @nagisa77 in #189
- Clean up notifications when posts or comments are removed by @nagisa77 in #190
- Add image upload endpoint with token support by @nagisa77 in #191
- Implement user visit tracking on post list by @nagisa77 in #192
- Add tag timeline and summary features by @nagisa77 in #193
- Refactor MessagePageView by @nagisa77 in #194
- Add unread filter tabs to messages by @nagisa77 in #195
- Fix draft save with custom tags by @nagisa77 in #196
- Fix draft saving when custom tags present by @nagisa77 in #197
- Fix deletion of posts with read records by @nagisa77 in #198
- Add OpenAI markdown format helper by @nagisa77 in #199
- Implement daily AI usage limit by @nagisa77 in #200
- Add 404 and login overlays by @nagisa77 in #201
- Fix not-found responses by @nagisa77 in #202
- Return 404 for missing posts and users by @nagisa77 in #203
- Add lightbox preview for Markdown images by @nagisa77 in #204
- Add DAU stats filter and endpoint by @nagisa77 in #205
- Implement whitelist registration mode by @nagisa77 in #206
- Add admin stats page with DAU chart by @nagisa77 in #207
- Fix reaction types access by @nagisa77 in #208
- Implement whitelist registration mode by @nagisa77 in #209
- Improve login error handling and Google whitelist signup by @nagisa77 in #211
- Fix register request notifications duplication by @nagisa77 in #212
- Allow login with email fallback by @nagisa77 in #213
- Add char count for signup reason input by @nagisa77 in #214
- Fix dynamic Google OAuth client config by @nagisa77 in #215
- Implement GitHub OAuth login by @nagisa77 in #216
- Fix latest posts ordering by @nagisa77 in #217
- Fix GitHub authentication errors by @nagisa77 in #218
- Fix notification deletion without transaction by @nagisa77 in #219
- Add Twitter OAuth login by @nagisa77 in #221
- Add Discord OAuth support by @nagisa77 in #222
- Fix Twitter OAuth login by @nagisa77 in #223
- Add debug logging for Twitter auth by @nagisa77 in #224
- Fix Twitter OAuth token request by @nagisa77 in #225
- Adjust username validation and signup UI by @nagisa77 in #226
- Fix Twitter OAuth debug logs by @nagisa77 in #227
- Fix Twitter OAuth 401 error by @nagisa77 in #228
- Use avatar from oauth providers by @nagisa77 in #229
- Add Vditor dark mode by @nagisa77 in #230
- Fix mobile menu auto close by @nagisa77 in #231
- Fix mobile menu display by @nagisa77 in #232
- Add global isMobile computed util by @nagisa77 in #233
- Implement avatar width adjustments via container queries by @nagisa77 in #234
- Improve mobile markdown layout by @nagisa77 in #235
- Implement simple mobile comment editor by @nagisa77 in #236
- Centralize open-isle domain by @nagisa77 in #237
- Add mobile dropdown page and search by @nagisa77 in #238
- Add mobile-friendly dropdown and search by @nagisa77 in #241
- Add sugar toast theme by @nagisa77 in #242
- Refine toast style by @nagisa77 in #243
- Add copy button for code blocks by @nagisa77 in #244
- Add article editing feature by @nagisa77 in #245
- Add post pinning feature by @nagisa77 in #246
- Add unread message dot on mobile menu by @nagisa77 in #247
- Enable comment image upload by @nagisa77 in #248
- Add latest reply tab support by @nagisa77 in #249
- Refactor Vditor initialization by @nagisa77 in #250
- Update README with detailed guide by @nagisa77 in #251
- feat: add debug logging for COS uploads by @nagisa77 in #252
- Add COS image reference tracking by @nagisa77 in #253
- Handle images in draft service by @nagisa77 in #254
- Use dynamic_assert directory for COS uploads by @nagisa77 in #255
- Fix loginWithGoogle router usage by @nagisa77 in #256
Full Changelog: https://github.com/nagisa77/OpenIsle/commits/v1.0