Nhất (×1) • Nhì (×2) • Ba (×3) • Khuyến Khích (×4). Tổng: 1.800.000 VNĐ
Key dates
Lịch trình
📩
Jun 22 – 17:00
Submission deadline
Hạn nộp ảnh
❤️
Jun 23 – Jun 25
Voting period
Thời gian bình chọn
🎉
Jun 26
Results announced
Công bố kết quả
Prize breakdown / Chi tiết giải thưởng
Prize / Giải
Winners
Value
Total
🥇 1st / Nhất
1
300,000 VND
300,000 VND
🥈 2nd / Nhì
2
250,000 VND
500,000 VND
🥉 3rd / Ba
3
200,000 VND
600,000 VND
🌟 Honorable / KK
4
100,000 VND
400,000 VND
🛡️
Admin Panel
Manage contest entries and company branding
🖼️ Company Logo
🖼️
Click to upload your company logo
PNG or SVG recommended · appears in the header on all pages
Preview — click "Save Logo" to apply
➕ Add contest entry
📷
Click to choose photo
JPG or PNG · max 10 MB
📋 Contest entries0 entries
No entries yet
⚠️ Default admin password: scgjwd2026 — change ADMIN_PWD in the script before going live.
ℹ️ Running in demo mode (localStorage). Fill in SUPABASE_URL and SUPABASE_ANON_KEY to enable real-time sync.
Run this SQL in your Supabase SQL editor first:
-- 1. Photos table
create table photos (
id uuid default gen_random_uuid() primary key,
name text not null,
caption text default '',
email text default '',
photo_url text default '',
votes integer default 0,
created_at timestamptz default now()
);
-- 2. Votes table (prevents duplicate votes)
create table votes (
id text primary key,
email text, name text,
photo_id uuid references photos(id) on delete cascade,
created_at timestamptz default now()
);
-- 3. Atomic vote increment function
create or replace function increment_vote(p_id uuid)
returns void language sql as $$
update photos set votes = votes + 1 where id = p_id;
$$;
create or replace function decrement_vote(p_id uuid)
returns void language sql as $$
update photos set votes = greatest(0, votes - 1) where id = p_id;
$$;
-- 4. Allow public access (internal app)
alter table photos enable row level security;
alter table votes enable row level security;
create policy "open" on photos for all using (true) with check (true);
create policy "open" on votes for all using (true) with check (true);
Then create a Storage bucket named photos and set it to Public.