From 3f5654efb423cb9e1b02d3f6caadd15d594cb943 Mon Sep 17 00:00:00 2001 From: LittleSheep Date: Mon, 11 Dec 2023 23:12:51 +0800 Subject: [PATCH] :sparkles: Challenges --- .idea/.gitignore | 5 + .idea/Fuxi.iml | 12 ++ .idea/codeStyles/Project.xml | 57 +++++++++ .idea/codeStyles/codeStyleConfig.xml | 5 + .idea/modules.xml | 8 ++ .idea/sqldialects.xml | 7 ++ .idea/vcs.xml | 6 + application/app.vue | 12 +- application/bun.lockb | Bin 426817 -> 428460 bytes .../components/{problems => problem}/list.vue | 0 .../components/problem/solution/program.vue | 11 ++ application/package.json | 1 + application/pages/about.vue | 30 +++++ application/pages/challenges/[id].vue | 116 ++++++++++++++++++ application/pages/index.vue | 2 +- application/pages/problems/[id].vue | 72 ++++++++++- .../migrations/20231210071647_profiles.sql | 26 ++-- .../migrations/20231210071842_problems.sql | 61 +++++---- .../migrations/20231210135930_challenges.sql | 46 +++++-- 19 files changed, 421 insertions(+), 56 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/Fuxi.iml create mode 100644 .idea/codeStyles/Project.xml create mode 100644 .idea/codeStyles/codeStyleConfig.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/sqldialects.xml create mode 100644 .idea/vcs.xml rename application/components/{problems => problem}/list.vue (100%) create mode 100644 application/components/problem/solution/program.vue create mode 100644 application/pages/about.vue create mode 100644 application/pages/challenges/[id].vue diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..b58b603 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,5 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/Fuxi.iml b/.idea/Fuxi.iml new file mode 100644 index 0000000..24643cc --- /dev/null +++ b/.idea/Fuxi.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml new file mode 100644 index 0000000..60dc64b --- /dev/null +++ b/.idea/codeStyles/Project.xml @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 0000000..79ee123 --- /dev/null +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..244877a --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/sqldialects.xml b/.idea/sqldialects.xml new file mode 100644 index 0000000..9ee9727 --- /dev/null +++ b/.idea/sqldialects.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/application/app.vue b/application/app.vue index dc69dd3..734c653 100644 --- a/application/app.vue +++ b/application/app.vue @@ -1,13 +1,15 @@ diff --git a/application/bun.lockb b/application/bun.lockb index 705a14ee34ac05e0fa7ac799b3c7ed7d64b872d7..f6040fb271f7a03e325d08a04859e20e6da31de2 100755 GIT binary patch delta 78648 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%0AW_srAk44(}`MctY%3U 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 delta 78091 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 AT>t<8 diff --git a/application/components/problems/list.vue b/application/components/problem/list.vue similarity index 100% rename from application/components/problems/list.vue rename to application/components/problem/list.vue diff --git a/application/components/problem/solution/program.vue b/application/components/problem/solution/program.vue new file mode 100644 index 0000000..b802c0a --- /dev/null +++ b/application/components/problem/solution/program.vue @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/application/package.json b/application/package.json index 545cafd..32024a1 100644 --- a/application/package.json +++ b/application/package.json @@ -22,6 +22,7 @@ "vue-router": "^4.2.5" }, "dependencies": { + "@guolao/vue-monaco-editor": "^1.4.1", "@ibm/plex": "^6.3.0", "@nuxtjs/mdc": "^0.2.8", "@supabase/supabase-js": "^2.39.0", diff --git a/application/pages/about.vue b/application/pages/about.vue new file mode 100644 index 0000000..3aabd92 --- /dev/null +++ b/application/pages/about.vue @@ -0,0 +1,30 @@ + + + + + \ No newline at end of file diff --git a/application/pages/challenges/[id].vue b/application/pages/challenges/[id].vue new file mode 100644 index 0000000..684759b --- /dev/null +++ b/application/pages/challenges/[id].vue @@ -0,0 +1,116 @@ + + + + + diff --git a/application/pages/index.vue b/application/pages/index.vue index c216752..0728629 100644 --- a/application/pages/index.vue +++ b/application/pages/index.vue @@ -1,5 +1,5 @@ diff --git a/application/pages/problems/[id].vue b/application/pages/problems/[id].vue index 1a09c5b..623adac 100644 --- a/application/pages/problems/[id].vue +++ b/application/pages/problems/[id].vue @@ -31,22 +31,90 @@ + + diff --git a/supabase/migrations/20231210071647_profiles.sql b/supabase/migrations/20231210071647_profiles.sql index 223d2af..10173af 100644 --- a/supabase/migrations/20231210071647_profiles.sql +++ b/supabase/migrations/20231210071647_profiles.sql @@ -1,14 +1,20 @@ -create table public.profiles ( - id uuid not null references auth.users on delete cascade, - username varchar(64), - nickname varchar(256), - school int8, - primary key (id) +create table public.profiles +( + id uuid not null references auth.users on delete cascade, + username varchar(64), + nickname varchar(256), + school int8, + primary key (id) ); -alter table public.profiles enable row level security; + +alter table public.profiles + enable row level security; + create policy "Public profiles are viewable by everyone." on profiles for -select using (true); + select using (true); + create policy "Users can insert their own profile." on profiles for -insert with check (auth.uid() = id); + insert with check (auth.uid() = id); + create policy "Users can update own profile." on profiles for -update using (auth.uid() = id); \ No newline at end of file + update using (auth.uid() = id); \ No newline at end of file diff --git a/supabase/migrations/20231210071842_problems.sql b/supabase/migrations/20231210071842_problems.sql index 7007967..f05316e 100644 --- a/supabase/migrations/20231210071842_problems.sql +++ b/supabase/migrations/20231210071842_problems.sql @@ -1,30 +1,39 @@ -create table public.problems ( - id bigint generated by default as identity, - title text not null, - description text not null, - type character varying not null, - tags character varying [] null, - author uuid null, - metadata jsonb null, - is_draft boolean null default true, - is_hidden boolean null default false, - created_at timestamp with time zone null default now(), - constraint problems_pkey primary key (id), - constraint problems_author_fkey foreign key (author) references auth.users (id) +create table public.problems +( + id bigint generated by default as identity, + title text not null, + description text not null, + type character varying not null, + tags character varying[] null, + author uuid null, + metadata jsonb null, + is_draft boolean null default true, + is_hidden boolean null default false, + created_at timestamp with time zone null default now(), + constraint problems_pkey primary key (id), + constraint problems_author_fkey foreign key (author) references auth.users (id) ) tablespace pg_default; -alter table public.problems enable row level security; + +alter table public.problems + enable row level security; + create policy "Public problems are viewable by everyone." on problems for -select using (true); -create table public.problem_cases ( - id bigint generated by default as identity, - spec jsonb not null, - limitations jsonb not null, - answer jsonb not null, - problem int8 not null, - is_hidden bool not null default true, - constraint problem_cases_pkey primary key (id), - constraint problem_cases_author_fkey foreign key (problem) references public.problems (id) + select using (true); + +create table public.problem_cases +( + id bigint generated by default as identity, + spec jsonb not null, + limitations jsonb not null, + answer jsonb not null, + problem int8 not null, + is_hidden bool not null default true, + constraint problem_cases_pkey primary key (id), + constraint problem_cases_author_fkey foreign key (problem) references public.problems (id) ) tablespace pg_default; -alter table public.problem_cases enable row level security; + +alter table public.problem_cases + enable row level security; + create policy "Public problem cases are viewable by everyone." on problem_cases for -select using (is_hidden = false); \ No newline at end of file + select using (is_hidden = false); \ No newline at end of file diff --git a/supabase/migrations/20231210135930_challenges.sql b/supabase/migrations/20231210135930_challenges.sql index 63bc3bb..ab57fb1 100644 --- a/supabase/migrations/20231210135930_challenges.sql +++ b/supabase/migrations/20231210135930_challenges.sql @@ -1,14 +1,36 @@ -create table public.challenges ( - id bigint generated by default as identity, - answers jsonb not null, - details jsonb not null, - author uuid not null, - problem int8 not null, - status varchar(256) not null, - created_at timestamp with time zone null default now(), - constraint challenges_pkey primary key (id), - constraint challenges_author_fkey foreign key (author) references auth.users (id), - constraint challenges_problem_fkey foreign key (problem) references public.problems (id) +create table public.challenges +( + id bigint generated by default as identity, + answers jsonb not null, + details jsonb not null, + author uuid not null, + problem int8 not null, + status varchar(256) not null, + created_at timestamp with time zone null default now(), + constraint challenges_pkey primary key (id), + constraint challenges_author_fkey foreign key (author) references auth.users (id), + constraint challenges_problem_fkey foreign key (problem) references public.problems (id) ) tablespace pg_default; + alter table public.challenges enable row level security; -create policy "The challagers can see their challenges" on "public"."challenges" for select to public using (auth.uid() = author) with check (true) \ No newline at end of file + +create +policy "Enable insert for everyone" on "public"."challenges" +as permissive for insert +to public +with check (true); + +create +policy "Enable read access for users' own items" on "public"."challenges" +as permissive for +select + to public + using (author = auth.uid()); + +create +policy "Enable update access for users' own items" on "public"."challenges" +as permissive for +update + to public + using (author = auth.uid()) +with check (author = auth.uid()) \ No newline at end of file