A Next.js web application for tracking and analyzing Disqus users from the finofilipino.org forum, a Spanish community with over 5 million monthly visitors. Discover, rate, and explore the most active "finoliers" (forum users) and their best posts.
- User Discovery: Search for Disqus users by their username and view detailed profiles
- Post Analysis: Browse the greatest hits and most recent highlighted posts from users
- User Rating System: Vote on users with "like", "dislike", or "unknown" options
- Activity Tracking: View the most active users from the last 7 days
- Statistics Dashboard: See comprehensive stats including follower counts, reputation, and upvotes
- Responsive Design: Fully responsive UI built with Tailwind CSS
- Framework: Next.js 15 (App Router)
- Database: PostgreSQL with Prisma ORM
- Styling: Tailwind CSS
- Language: TypeScript
- External API: Disqus API for fetching user data and posts
- Charts: Recharts for data visualization
- Testing: Vitest with React Testing Library
- Deployment: Vercel
The application tracks:
- Finoliers: User profiles with stats and metadata
- Posts: Individual forum posts with like/dislike counts and popularity scores
- Threads: Discussion threads from the forum
- Votes: User ratings and feedback
- Users: Application users for the voting system
Create a .env file with:
DATABASE_URL="your_postgresql_connection_string"
DISQUS_API="your_disqus_api_key"-
Clone the repository
git clone <repository-url> cd finoliers
-
Install dependencies
npm install
-
Set up the database
npx prisma migrate dev npx prisma generate
-
Run the development server
npm run dev
-
Open your browser Visit http://localhost:3000 to see the application.
src/
├── actions/ # Server actions for data fetching and mutations
├── app/ # Next.js app router pages and API routes
├── components/ # React components
├── contexts/ # React context providers
├── db/ # Database configuration
└── hooks/ # Custom React hooks
prisma/
├── schema.prisma # Database schema
└── migrations/ # Database migrations
Run the test suite:
npm testGenerate coverage report:
npm run coverage- Search for users by their Disqus username
- Automatic profile data synchronization from Disqus API
- Display user stats, avatar, bio, and location
- Automatically fetch and store user posts from Disqus
- Track post popularity based on likes and engagement
- Show greatest hits and recent highlights
- Rate users with a simple voting system
- View community-driven rankings
- Explore most active users and trending content
- Intelligent caching to minimize API calls
- Background job for periodic data updates
- Graceful handling of private profiles
The app integrates with the Disqus API to:
- Fetch user profile information
- Retrieve user posts and comments
- Get thread and discussion data
- Sync data periodically via cron jobs
The application is designed for deployment on Vercel:
npm run buildMake sure to configure environment variables in your deployment platform.
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if needed
- Run the test suite
- Submit a pull request
This project is for educational and community purposes.