{"id":30188731,"url":"https://github.com/rickreisdev/vivid-event-scape","last_synced_at":"2026-04-02T18:52:12.925Z","repository":{"id":308433190,"uuid":"992916659","full_name":"rickreisdev/vivid-event-scape","owner":"rickreisdev","description":"EventosBR","archived":false,"fork":false,"pushed_at":"2025-08-05T23:23:22.000Z","size":2809,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-05T23:27:48.651Z","etag":null,"topics":["css","eventos","html","lovable","lovable-ai","react","rickreis","rickreisdev","supabase","supabase-auth","supabase-db","typescript","vite"],"latest_commit_sha":null,"homepage":"https://vivid-event-scape.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rickreisdev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-29T23:11:41.000Z","updated_at":"2025-08-05T23:26:09.000Z","dependencies_parsed_at":"2025-08-05T23:39:43.424Z","dependency_job_id":null,"html_url":"https://github.com/rickreisdev/vivid-event-scape","commit_stats":null,"previous_names":["rickreisdev/vivid-event-scape"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/rickreisdev/vivid-event-scape","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rickreisdev%2Fvivid-event-scape","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rickreisdev%2Fvivid-event-scape/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rickreisdev%2Fvivid-event-scape/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rickreisdev%2Fvivid-event-scape/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rickreisdev","download_url":"https://codeload.github.com/rickreisdev/vivid-event-scape/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rickreisdev%2Fvivid-event-scape/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270109017,"owners_count":24528773,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-12T02:00:09.011Z","response_time":80,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["css","eventos","html","lovable","lovable-ai","react","rickreis","rickreisdev","supabase","supabase-auth","supabase-db","typescript","vite"],"created_at":"2025-08-12T17:48:47.653Z","updated_at":"2025-12-30T21:46:40.739Z","avatar_url":"https://github.com/rickreisdev.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# EventosBR\n\n## Sobre o Projeto\n\nEventosBR é uma plataforma moderna para gerenciamento e descoberta de eventos. Este projeto foi desenvolvido como parte de um estudo prático sobre desenvolvimento de software utilizando ferramentas modernas de IA, como Lovable e as funcionalidades do Cursor, demonstrando a integração eficiente entre desenvolvimento tradicional e assistência por IA.\n\n**Link do Projeto no Lovable**: https://lovable.dev/projects/6f7a3e45-e08f-4ea5-a0a2-3447e3ee93da\n\n## Como Executar o Projeto Localmente\n\nPara trabalhar com o código localmente, você precisará ter Node.js \u0026 npm instalados - [instale usando nvm](https://github.com/nvm-sh/nvm#installing-and-updating)\n\nSiga estes passos:\n\n```sh\n# Passo 1: Clone o repositório usando a URL do Git do projeto\ngit clone \u003chttps://github.com/rickreisdev/vivid-event-scape\u003e\n\n# Passo 2: Navegue até o diretório do projeto\ncd \u003cNOME_DO_PROJETO\u003e\n\n# Passo 3: Instale as dependências necessárias\nnpm i\n\n# Passo 4: Inicie o servidor de desenvolvimento com auto-reload e preview instantâneo\nnpm run dev\n```\n\n## Tecnologias Utilizadas\n\nEste projeto foi construído com as seguintes tecnologias e ferramentas:\n\n### Stack Principal\n\n- Vite\n- TypeScript\n- React\n- shadcn-ui\n- Tailwind CSS\n- Supabase (Autenticação e Banco de Dados)\n\n### Ferramentas de Desenvolvimento\n\n- Lovable (Desenvolvimento Assistido por IA)\n- Cursor (IDE)\n- ChatGPT\n- Claude (Engenharia de Prompts)\n\n## Configuração do Ambiente\n\n### Variáveis de Ambiente\n\n1. Crie um arquivo `.env` na raiz do projeto com as seguintes variáveis:\n\n```env\nVITE_SUPABASE_URL=sua_url_do_projeto\nVITE_SUPABASE_ANON_KEY=sua_chave_anon\n```\n\nPara obter estes valores:\n\n1. Acesse o painel do Supabase\n2. Navegue até Project Settings -\u003e API\n3. Copie os valores de \"Project URL\" e \"anon public\" para as respectivas variáveis\n\n### Configuração do Banco de Dados\n\nNo Supabase, você precisará criar duas tabelas: `eventos` e `profiles`. Execute os seguintes comandos SQL no Editor SQL do Supabase:\n\n#### Tabela 'eventos'\n\n```sql\ncreate table public.eventos (\n  id uuid not null default gen_random_uuid (),\n  nome text not null,\n  data date not null,\n  descricao text not null,\n  cidade text not null,\n  estado text not null,\n  link text null,\n  created_at timestamp without time zone not null default now(),\n  updated_at timestamp without time zone null,\n  user_id uuid not null default gen_random_uuid (),\n  constraint eventos_pkey primary key (id)\n) TABLESPACE pg_default;\n\ncreate trigger update_eventos_updated_at BEFORE\nupdate on eventos for EACH row\nexecute FUNCTION update_updated_at_column ();\n```\n\n#### Tabela 'profiles'\n\n```sql\ncreate table public.profiles (\n  id uuid not null,\n  name text not null,\n  created_at timestamp with time zone not null default now(),\n  updated_at timestamp with time zone not null default now(),\n  constraint profiles_pkey primary key (id),\n  constraint profiles_id_fkey foreign KEY (id) references auth.users (id) on delete CASCADE\n) TABLESPACE pg_default;\n\ncreate trigger update_profiles_updated_at BEFORE\nupdate on profiles for EACH row\nexecute FUNCTION update_updated_at_column ();\n```\n\n### Configuração da Autenticação com Supabase\n\nAlém da configuração do banco de dados, você também precisará configurar a autenticação no Supabase:\n\n#### 1. Configurar URLs de Redirecionamento\n\n1. No painel do Supabase, vá para **Authentication** → **Settings**\n2. Em **Site URL**, adicione: `http://localhost:5173`\n3. Em **Redirect URLs**, adicione:\n   - `http://localhost:5173`\n   - `http://localhost:5173/auth/callback`\n4. Clique em **Save**\n\n#### 2. Configurar Políticas de Segurança (RLS)\n\nApós criar as tabelas, configure as políticas de segurança para controlar o acesso:\n\n**Para a tabela `eventos`:**\n\n```sql\n-- Habilitar RLS\nALTER TABLE public.eventos ENABLE ROW LEVEL SECURITY;\n\n-- Política para permitir leitura pública\nCREATE POLICY \"Permitir leitura pública de eventos\" ON public.eventos\nFOR SELECT USING (true);\n\n-- Política para permitir inserção apenas para usuários autenticados\nCREATE POLICY \"Permitir inserção para usuários autenticados\" ON public.eventos\nFOR INSERT WITH CHECK (auth.uid() = user_id);\n\n-- Política para permitir atualização apenas para o criador do evento\nCREATE POLICY \"Permitir atualização para criador do evento\" ON public.eventos\nFOR UPDATE USING (auth.uid() = user_id);\n\n-- Política para permitir exclusão apenas para o criador do evento\nCREATE POLICY \"Permitir exclusão para criador do evento\" ON public.eventos\nFOR DELETE USING (auth.uid() = user_id);\n```\n\n**Para a tabela `profiles`:**\n\n```sql\n-- Habilitar RLS\nALTER TABLE public.profiles ENABLE ROW LEVEL SECURITY;\n\n-- Política para permitir leitura pública\nCREATE POLICY \"Permitir leitura pública de perfis\" ON public.profiles\nFOR SELECT USING (true);\n\n-- Política para permitir inserção apenas para o próprio usuário\nCREATE POLICY \"Permitir inserção para próprio usuário\" ON public.profiles\nFOR INSERT WITH CHECK (auth.uid() = id);\n\n-- Política para permitir atualização apenas para o próprio usuário\nCREATE POLICY \"Permitir atualização para próprio usuário\" ON public.profiles\nFOR UPDATE USING (auth.uid() = id);\n```\n\n#### 3. Criar Função de Atualização Automática\n\nExecute este SQL para criar a função que atualiza automaticamente o campo `updated_at`:\n\n```sql\nCREATE OR REPLACE FUNCTION update_updated_at_column()\nRETURNS TRIGGER AS $$\nBEGIN\n    NEW.updated_at = NOW();\n    RETURN NEW;\nEND;\n$$ language 'plpgsql';\n```\n\n\u003e **Importante**: Certifique-se de que o arquivo `.env` está listado no `.gitignore` para não expor suas credenciais.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frickreisdev%2Fvivid-event-scape","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frickreisdev%2Fvivid-event-scape","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frickreisdev%2Fvivid-event-scape/lists"}