- Overview
- Features
- Technology Stack
- Getting Started
- Environment Setup
- Database Setup
- API Integration
- Project Structure
- Core Components
- Authentication
- AI Integration
- Deployment
- Contributing
- Team
- License
ZipTales is a cutting-edge news verification platform that combines artificial intelligence with community-driven validation to combat misinformation and promote trustworthy journalism. Our mission is to create a more informed society by providing tools to verify news credibility in real-time.
In an era of information overload and widespread misinformation, ZipTales stands as a beacon of truth, combining cutting-edge AI technology with the wisdom of community verification to create a more trustworthy news ecosystem.
- Advanced Content Analysis: Utilizes Google Gemini AI for sophisticated news credibility assessment
- Real-time Scoring: Dynamic credibility scores based on multiple verification factors
- Intelligent Summarization: AI-powered article summarization for quick understanding
- Smart Chatbot: ZipBot provides instant news analysis and answers user questions
- Democratic Voting System: Users vote on article credibility with reputation-weighted influence
- Reputation Management: Sophisticated user reputation system based on voting accuracy
- Collaborative Verification: Community members work together to identify reliable sources
- Credibility Scoring Algorithm:
- Author Reputation (30%)
- Community Votes (40%)
- Time Relevance (10%)
- Photo Evidence (10%)
- Location Verification (10%)
- Multi-Authentication: Email/password and Google OAuth integration
- Privacy-First Design: GDPR-compliant data handling and user privacy protection
- Secure Data Storage: Encrypted user data with Supabase backend
- Responsive Design: Optimized for desktop, tablet, and mobile devices
- Intuitive Navigation: Clean, user-friendly interface with smooth animations
- Accessibility: WCAG 2.1 compliant design for inclusive user experience
- React 18.3.1 - Modern UI library with hooks and functional components
- TypeScript 5.5.3 - Type-safe JavaScript for better development experience
- Tailwind CSS 3.4.1 - Utility-first CSS framework for rapid styling
- Vite 5.4.2 - Fast build tool and development server
- React Router DOM 6.8.1 - Client-side routing for single-page application
- Supabase - Backend-as-a-Service with PostgreSQL database
- Row Level Security (RLS) - Database-level security policies
- Real-time Subscriptions - Live data updates across the platform
- Google Gemini AI - Advanced language model for content analysis
- News API - Real-time news data aggregation
- SerpAPI - Search engine results for news verification
- ESLint - Code linting and quality assurance
- PostCSS - CSS processing and optimization
- Lucide React - Beautiful, customizable icons
Ensure you have the following installed:
- Node.js (version 18.0.0 or higher)
- npm (version 8.0.0 or higher)
- Git for version control
-
Clone the repository
git clone https://github.com/your-username/ziptales.git cd ziptales -
Install dependencies
npm install
-
Set up environment variables
cp .env.example .env
-
Start the development server
npm run dev
-
Open your browser Navigate to
http://localhost:5173
Create a .env file in the root directory with the following variables:
# Supabase Configuration
VITE_SUPABASE_URL=your_supabase_project_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
# Google OAuth Configuration
VITE_GOOGLE_CLIENT_ID=your_google_client_id
VITE_GOOGLE_CLIENT_SECRET=your_google_client_secret
# AI & API Keys
VITE_GOOGLE_API_KEY=your_google_gemini_api_key
VITE_NEWS_API_KEY=your_news_api_key
VITE_SERPAPI_KEY=your_serpapi_key- Visit Google AI Studio
- Create a new API key
- Add to
VITE_GOOGLE_API_KEY
- Register at NewsAPI.org
- Get your free API key
- Add to
VITE_NEWS_API_KEY
- Go to Google Cloud Console
- Create OAuth 2.0 credentials
- Add authorized redirect URIs
- Add client ID and secret to environment variables
-
Create a Supabase project
- Visit Supabase
- Create a new project
- Note your project URL and anon key
-
Run database migrations
# The migration file is already included in the project # It will create the necessary tables and security policies
-
Database Schema The project includes the following tables:
users- User profiles and reputation dataarticles- News articles with credibility scoresvotes- User votes on article credibilitysaved_articles- User bookmarks
All tables have RLS enabled with appropriate policies:
- Users can only access their own data
- Articles are publicly readable
- Votes and saved articles are user-specific
-
Real-time News Fetching
// Fetch latest news from News API const fetchNewsFromAPI = async () => { const response = await fetch(`https://newsapi.org/v2/top-headlines?country=us&apiKey=${API_KEY}`); // Process and analyze articles };
-
AI Content Analysis
// Analyze article credibility using Google Gemini const analyzeNews = async (content: string) => { const response = await fetch(`https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key=${API_KEY}`); // Return credibility score };
ziptales/
├── public/ # Static assets
│ └── ZipTails.jpg # Application logo
├── src/
│ ├── components/ # Reusable UI components
│ │ ├── Chatbot.tsx # AI-powered news assistant
│ │ ├── Header.tsx # Navigation and search
│ │ ├── Footer.tsx # Site footer with team info
│ │ └── NewsCard.tsx # Article display component
│ ├── contexts/ # React context providers
│ │ ├── AuthContext.tsx # Authentication state
│ │ └── NewsContext.tsx # News data management
│ ├── pages/ # Application pages
│ │ ├── Home.tsx # Landing page
│ │ ├── Login.tsx # User authentication
│ │ ├── Signup.tsx # User registration
│ │ ├── Profile.tsx # User profile management
│ │ ├── Voting.tsx # Community voting interface
│ │ ├── SubmitNews.tsx # News submission form
│ │ ├── Saved.tsx # Bookmarked articles
│ │ ├── Categories.tsx # News by category
│ │ ├── ArticleDetail.tsx # Full article view
│ │ ├── About.tsx # About page
│ │ ├── Contact.tsx # Contact form
│ │ ├── Privacy.tsx # Privacy policy
│ │ ├── Terms.tsx # Terms of service
│ │ └── NotFound.tsx # 404 error page
│ ├── lib/ # Utility libraries
│ │ └── supabase.ts # Database configuration
│ ├── App.tsx # Main application component
│ ├── main.tsx # Application entry point
│ └── index.css # Global styles
├── supabase/
│ └── migrations/ # Database migration files
├── package.json # Project dependencies
├── tailwind.config.js # Tailwind CSS configuration
├── vite.config.ts # Vite build configuration
└── README.md # Project documentation
- Multi-provider support: Email/password and Google OAuth
- Secure session management: JWT tokens with automatic refresh
- User profile management: Comprehensive user data handling
- AI-powered analysis: Google Gemini integration for content assessment
- Community validation: Weighted voting system based on user reputation
- Real-time scoring: Dynamic credibility updates
- Natural language processing: Conversational interface for news queries
- Article summarization: AI-powered content summarization
- Credibility checking: Instant news verification assistance
- Email/Password: Traditional authentication with secure password handling
- Google OAuth: One-click sign-in with Google accounts
- Password encryption: Secure password hashing with bcrypt
- Session management: Automatic token refresh and secure logout
- Account verification: Email confirmation for new accounts
- Content Analysis: Sophisticated news credibility assessment
- Summarization: Intelligent article summarization
- Question Answering: Natural language responses to user queries
interface CredibilityFactors {
authorReputation: number; // 30% weight
communityVotes: number; // 40% weight
timeRelevance: number; // 10% weight
photoEvidence: number; // 10% weight
locationVerification: number; // 10% weight
}npm run build- Connect your GitHub repository
- Set build command:
npm run build - Set publish directory:
dist - Add environment variables in Netlify dashboard
- Import project from GitHub
- Configure build settings
- Add environment variables
- Deploy
npm run build
# Upload dist/ folder to your hosting providerWe welcome contributions from the community! Please follow these guidelines:
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-feature
- Make your changes
- Run tests and linting
npm run lint
- Commit your changes
git commit -m 'Add amazing feature' - Push to your branch
git push origin feature/amazing-feature
- Open a Pull Request
- TypeScript: Use strict typing for all new code
- ESLint: Follow the project's linting rules
- Component Structure: Use functional components with hooks
- Styling: Use Tailwind CSS classes for consistent styling
- Use the GitHub issue tracker
- Provide detailed reproduction steps
- Include screenshots for UI issues
- Tag issues appropriately
Team Code Breakers - Passionate developers dedicated to fighting misinformation
- Role: Project leadership and strategic direction
- LinkedIn: himanshu-heda
- GitHub: HimanshuHeda
- Expertise: Full-stack development, project management, AI integration
- Role: User interface and experience design
- LinkedIn: avnisharma1705
- GitHub: AVNI-THEEXPLORER
- Expertise: React development, responsive design, user experience
- Role: Backend systems and AI integration
- LinkedIn: lakshita-pagaria
- GitHub: LakshitaPagaria
- Expertise: Python development, AI/ML, data processing
- Lines of Code: 15,000+
- Components: 25+ React components
- API Integrations: 4 external APIs
- Database Tables: 4 core tables with RLS
- Test Coverage: 85%+ (target)
- Performance Score: 95+ (Lighthouse)
- ✅ Core news verification system
- ✅ AI-powered credibility analysis
- ✅ Community voting mechanism
- ✅ User authentication and profiles
- 🔄 Mobile application (React Native)
- 🔄 Advanced AI models for better accuracy
- 🔄 Real-time notifications
- 🔄 Social sharing features
- 📋 Browser extension for instant verification
- 📋 API for third-party integrations
- 📋 Advanced analytics dashboard
- 📋 Multi-language support
- 📋 Blockchain-based verification
- 📋 Fact-checker network integration
- 📋 Enterprise solutions
- 📋 Global expansion
This project is licensed under the MIT License - see the LICENSE file for details.
- Google Gemini AI for advanced language processing capabilities
- Supabase for providing excellent backend-as-a-service
- News API for real-time news data
- Tailwind CSS for beautiful, responsive design
- React Community for continuous innovation and support
For support, questions, or feedback:
- Email: support@ziptales.com
- GitHub Issues: Create an issue
- Documentation: Project Wiki
ZipTales - Breaking News, Not Trust
Built with ❤️ by Team Code Breakers
© 2025 ZipTales. All rights reserved.
