A social verification platform where users submit claims/statements and others verify or “vilify” them.
This project is built with Node.js, Express, Supabase/Postgres, and React.
- Signup / Login using JWT
- Secure password hashing
- Protected routes
- Users can create claims
- Claims are tied to the author
- Each claim stores timestamp and metadata
- Users can verify (agree) or vilify (disagree) claims
- Score per claim = agrees - disagrees
- Users cannot vote on their own claims
- Users can vote only once per claim
- Track user's submitted claims
- Track user's votes
- Limit requests per user/IP to prevent spam
- Input validation and error handling
- CORS and Helmet for basic security
users
- id (primary key)
- username (unique)
- password (hashed)
claims
- id (primary key)
- content (text)
- user_id (foreign key → users)
- score (integer)
- created_at (timestamp)
votes
- id (primary key)
- user_id (foreign key → users)
- claim_id (foreign key → claims)
- type (enum: agree / disagree)
- created_at (timestamp)
- Frontend: React, Vite, Tailwind/CSS
- Backend: Node.js, Express
- Database: Supabase (Postgres)
- Auth: JWT
- ORM: Prisma (optional if using Supabase client)
- Clone the repository
- Setup Supabase project / environment variables
- Run backend:
npm install npm run dev