211dc58884
Studio: use site CTA for Upload button (bg-sky-600) instead of accent
2026-03-01 08:30:06 +01:00
916bb29a53
feat(trending): switch trending endpoints to Ranking V2 ranking_score\n\n- discoverTrending() now sorts by ranking_score:desc + engagement_velocity:desc\n- HomepageService::getTrending() now sorts by ranking_score:desc + velocity\n- DB fallback joins artwork_stats for ranking_score sort\n- Both trending endpoints filter to last 30 days (spec §6)\n- Add created_at to Meilisearch filterableAttributes for date filtering\n- Synced index settings"
2026-02-28 16:47:08 +01:00
de3ec22ee5
feat: Ranking Engine V2 — intelligent scoring with shares, authority, decay & velocity\n\n- Add ArtworkRankingService with V2 formula:\n ranking_score = (base × authority × decay) + velocity_boost\n Base: views×0.2 + downloads×1.5 + favourites×2.5 + comments×3.0 + shares×4.0\n Authority: 1 + (log10(1+followers) + fav_received/1000) × 0.05\n Decay: 1 / (1 + hours/48)\n Velocity: 24h signals × velocity_weights × 0.5\n\n- Add nova:recalculate-rankings command (--chunk, --sync-rank-scores, --skip-index)\n- Add migration: ranking_score, engagement_velocity, shares/comments counts to artwork_stats\n- Upgrade RankingService.computeScores() with shares + comments + velocity\n- Update Meilisearch sortableAttributes: ranking_score, shares_count, engagement_velocity, comments_count\n- Update toSearchableArray() to expose V2 fields\n- Schedule every 30 min with overlap protection\n- Verified: 49733 artworks scored successfully"
2026-02-28 16:41:15 +01:00
90f244f264
feat: artwork share system with modal, native Web Share API, and tracking
...
- Add ArtworkShareModal with glassmorphism UI (Facebook, X, Pinterest, Email, Copy Link, Embed Code)
- Add ArtworkShareButton with lazy-loaded modal and native share fallback
- Add useWebShare hook abstracting navigator.share with AbortError handling
- Add ShareToast auto-dismissing notification component
- Add share() endpoint to ArtworkInteractionController (POST /api/artworks/{id}/share)
- Add artwork_shares migration for Phase 2 share tracking
- Refactor ArtworkActionBar to use new ArtworkShareButton component
2026-02-28 15:29:45 +01:00
568b3f3abb
feat: merge Like+Favourite into single heart button, add Report modal with required reason & proof, fix favourite 422 (user_favorites -> artwork_favourites)
2026-02-28 15:15:37 +01:00
eee7df1f8c
feat: artwork page carousels, recommendations, avatars & fixes
...
- Infinite loop carousels for Similar Artworks & Trending rails
- Mouse wheel horizontal scrolling on both carousels
- Author avatar shown on hover in RailCard (similar + trending)
- Removed "View" badge from RailCard hover overlay
- Added `id` to Meilisearch filterable attributes
- Auto-prepend Scout prefix in meilisearch:configure-index command
- Added author name + avatar to Similar Artworks API response
- Added avatar_url to ArtworkListResource author object
- Added direct /art/{id}/{slug} URL to ArtworkListResource
- Fixed race condition: Similar Artworks no longer briefly shows trending items
- Fixed user_profiles eager load (user_id primary key, not id)
- Bumped /api/art/{id}/similar rate limit to 300/min
- Removed decorative heart icons from tag pills
- Moved ReactionBar under artwork description
2026-02-28 14:05:39 +01:00
80100c7651
fix: prevent toolbar search flicker on outside page click
2026-02-28 08:14:12 +01:00
8b00084f09
fix: separate pill clicks from carousel drag with bottom drag zone
2026-02-28 08:10:10 +01:00
6536d4ae78
feat: add reusable gallery carousel and ranking feed infrastructure
2026-02-28 07:56:25 +01:00
67ef79766c
fix(gallery): fill tall portrait cards to full block width with object-cover crop
...
- ArtworkCard: add w-full to nova-card-media, use absolute inset-0 on img so
object-cover fills the max-height capped box instead of collapsing the width
- MasonryGallery.css: add width:100% to media container, position img
absolutely so top/bottom is cropped rather than leaving dark gaps
- Add React MasonryGallery + ArtworkCard components and entry point
- Add recommendation system: UserRecoProfile model/DTO/migration,
SuggestedCreatorsController, SuggestedTagsController, Recommendation
services, config/recommendations.php
- SimilarArtworksController, DiscoverController, HomepageService updates
- Update routes (api + web) and discover/for-you views
- Refresh favicon assets, update vite.config.js
2026-02-27 13:34:08 +01:00
09eadf9003
feat(artwork): sidebar layout, icon actions, original download URL fix
...
- ArtworkDownloadController: fix resolveDownloadUrl() to use correct CDN
path: original/{h1}/{h2}/{hash}.{file_ext} (was wrong originals/h1/h2/h3/orig.webp)
Wrap incrementDownloads() in try/catch so Redis failure can't break the response
- ArtworkPage: move ArtworkAuthor from left column to right sidebar
Sidebar now stacks: Author → Actions → Awards (sticky top-24)
Mobile block follows same order above main content
- ArtworkActions: replace four stacked text buttons with a compact 4-col icon grid
Like (heart, rose when active), Save (star, amber when active),
Share (network icon), Report (flag icon, red on hover)
Download remains full-width orange CTA
- ArtworkAuthor: add icons to Profile (person) and Follow buttons
Follow shows circle-check icon; Following state shows user-plus icon
2026-02-27 11:31:32 +01:00
4f9b43bbba
feat(homepage): Nova homepage layout — guest/auth split, mascot category tiles, 5-col artwork grids
...
- HomeController: is_logged_in now lives inside props JSON (not separate view var)
- HomepageService: allForUser() adds user_data, fresh, suggested_creators; auth
payload includes is_logged_in:true; guest payload merged with is_logged_in:false
- getTrending/getFreshUploads/getFollowingFeed: limit 12→10 (2 clean rows of 5)
- New getUserData() — unread messages + notifications counts via DB
- New getSuggestedCreators() — top followed-count creators not yet followed, cached 5 min
React — new components:
- HomeWelcomeRow: greeting bar with avatar, unread message/notification badges, upload CTA
- HomeFromFollowing: art grid from followed creators with empty-state
- HomeTrendingForYou: personalized grid adapts heading/link to user's top tag
- HomeBecauseYouLike: secondary personalized section keyed on top tag
- HomeSuggestedCreators: 4-col creator cards with avatar, stats, View Profile link
- HomeCTA: gradient upload banner; guest sees Create Account second CTA
- HomeCategories: 5-tile static category grid with mascot images
React — updated:
- HomePage: split into GuestHomePage + AuthHomePage; routes on is_logged_in prop
- HomeHero: isLoggedIn prop; upload href gates on auth; CTA → /discover/trending
- HomeTrending: see-all → /discover/trending; grid 4→5 cols; slice to multiple of 5
- HomeFresh: see-all → /discover/fresh; grid 4→5 cols; slice to multiple of 5
- HomeFromFollowing/TrendingForYou/BecauseYouLike: 5-col grid, slice to multiple of 5
- HomeCategories: mascots per category (wallpapers/photography/skins/other), smaller tiles
2026-02-27 10:48:35 +01:00
f0cca76eb3
storing analytics data
2026-02-27 09:46:51 +01:00
15b7b77d20
messages implemented
2026-02-26 21:12:32 +01:00
d0aefc5ddc
feat: Nova homepage, profile redesign, and legacy view system overhaul
...
Homepage
- Add HomepageService with hero, trending (award-weighted), fresh uploads,
popular tags, creator spotlight (weekly uploads ranking), and news sections
- Add React components: HomePage, HomeHero, HomeTrending, HomeFresh,
HomeTags, HomeCreators, HomeNews (lazy-loaded below the fold)
- Wire home.blade.php with JSON props, SEO meta, JSON-LD, and hero preload
- Add HomePage.jsx to vite.config.js inputs
Profile page
- Hero banner with random user artwork as background + dark gradient overlay
- Favourites section uses real Artwork models + <x-artwork-card> for CDN URLs
- Newest artworks grid: gallery-grid → grid grid-cols-2 gap-4
Edit Profile page (user.blade.php)
- Add hero banner (featured wallpaper/photography via artwork_features,
content_type_id IN [2,3]) sourced in UserController
- Remove bg-deep from outer wrapper; card backgrounds: bg-panel → bg-nova-800
- Remove stray AI-generated tag fragment from template
Author profile links
- Fix all /@username routes in: HomepageService, MonthlyCommentatorsController,
LatestCommentsController, MyBuddiesController and corresponding blade views
Legacy view namespace
- Register View::addNamespace('legacy', resource_path('views/_legacy'))
in AppServiceProvider::boot()
- Convert all view('legacy.x') and @include('legacy.x') calls to legacy::x
- Migrate legacy views to resources/views/_legacy/ with namespace support
2026-02-26 10:25:35 +01:00
d3fd32b004
fixes gallery
2026-02-26 07:27:20 +01:00
0032aec02f
feat: increase gallery grid from 4 to 5 columns per row on desktopfeat: increase gallery grid from 4 to 5 columns per row on desktop
2026-02-25 19:11:23 +01:00
5c97488e80
fixed gallery
2026-02-22 17:09:34 +01:00
48e2055b6a
gallery fix
2026-02-21 21:39:23 +01:00
e4e0bdf8f1
fixes
2026-02-21 19:26:48 +01:00
7648e7d426
Merge branch 'feature/RegistrationAntispamMail' into develop
2026-02-21 12:17:27 +01:00
e70a876ef2
Merge branch 'feat/registration-antispam-complete' into feature/RegistrationAntispamMail
2026-02-21 12:14:46 +01:00
df67252078
fix
2026-02-21 12:14:22 +01:00
b239af9619
feat(auth): complete registration anti-spam and quota hardening
2026-02-21 12:13:01 +01:00
4fb95c872b
feat(auth): registration and login
2026-02-21 08:29:53 +01:00
795c7a835f
Auth: convert auth views and verification email to Nova layout
2026-02-21 07:37:08 +01:00
93b009d42a
Merge branch 'feature/forum-migration-v1' into develop
2026-02-19 08:36:46 +01:00
c30fa5a392
prepared and gallery fixes
2026-02-19 08:36:32 +01:00
8935065af1
feat(forum): add forum schema
2026-02-17 17:19:01 +01:00
41287914aa
Upload beautify
2026-02-17 17:14:43 +01:00
b053c0cc48
fixed gallery from legacy into one
2026-02-15 17:46:08 +01:00
7dbfdab40e
gallery
2026-02-15 16:49:15 +01:00
7734e53d87
fixed browse and tailwindcss style
2026-02-15 11:01:19 +01:00
d114472823
removed files
2026-02-15 09:47:24 +01:00
b2c9efe587
Merge branch 'feature/NovaDesignImplement' into develop
2026-02-15 09:25:23 +01:00
9dbe848412
Restore toolbar background to bg-nebula; add toolbar backdrop blur
2026-02-15 09:24:43 +01:00
79192345e3
Upload beautify
2026-02-14 15:14:12 +01:00
e129618910
toolbar fixed
2026-02-08 17:10:22 +01:00
f04854bb8d
fixed toolbar menu
2026-02-08 16:43:29 +01:00
3f7c22373e
fix
2026-02-08 10:43:28 +01:00
693b534514
fix
2026-02-08 10:43:01 +01:00
1a39ff3b09
fix
2026-02-08 10:42:51 +01:00
e055af9248
current state
2026-02-08 10:42:01 +01:00
0a4372c40d
Current state
2026-02-07 08:23:18 +01:00