EcoQuiz is a modern, interactive quiz platform designed to make learning fun and engaging. Users can join communities, participate in quizzes, track their progress, and compete on leaderboards. This project leverages a robust Go backend and a dynamic React frontend to deliver a seamless user experience.
- User Authentication: Secure registration and login system.
- Community Management: Join and explore various communities of interest.
- Interactive Quizzes: Take quizzes with a timer and instant feedback.
- Leaderboards: Compete with other users and see top performers.
- History & Analytics: Review your past quiz attempts and performance.
- Responsive UI: A beautiful, fully responsive interface built with TailwindCSS.
- Language: Go (v1.25.5)
- Framework: Gin Web Framework
- Database: PostgreSQL
- Driver: pgx
- Authentication: JWT (JSON Web Tokens) & OAuth2
- Framework: React (v19)
- Build Tool: Vite
- Styling: TailwindCSS (v4)
- Language: TypeScript
The landing page of EcoQuiz where users can discover new quizzes and communities.

Explore and join different communities to access specific quizzes.

View details of a specific community and its available quizzes.

Get detailed information about a quiz before starting it.

An interactive interface for answering quiz questions.

Instant results and feedback after completing a quiz.

Track your past performance and review previous attempts.

See where you stand among other quiz takers.

Follow these instructions to set up the project locally.
- Go 1.25 or higher
- Node.js & npm (or yarn/pnpm)
- PostgreSQL database
-
Clone the repository:
git clone <repository-url> cd EcoQuiz
-
Environment Variables: Copy the
.env.examplefile to.envand configure your database and JWT credentials.cp .env.example .env
-
Install Dependencies:
go mod download
-
Run the Server:
go run cmd/main.go
The backend server will start on the port specified in your
.envfile (default is usually 8080).
-
Navigate to the frontend directory:
cd frontend -
Install Dependencies:
npm install
-
Run the Development Server:
npm run dev
The application will be accessible at
http://localhost:5173(or the port shown in your terminal).
EcoQuiz/
├── cmd/ # Application entry points (main.go)
├── internal/ # Private application and library code
│ ├── handlers/ # HTTP request handlers
│ ├── models/ # Database models
│ ├── routes/ # API route definitions
│ └── services/ # Business logic services
├── frontend/ # React frontend application
│ ├── src/ # Source code
│ ├── public/ # Public assets
│ └── ...
├── images/ # Project screenshots
├── uploads/ # User uploads (avatars, etc.)
└── ...
Contributions are welcome! Please fork the repository and create a pull request with your changes.
This project is licensed under the MIT License.