Skip to content

Ahmed-175/EcoQuiz

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌍 EcoQuiz

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.

🚀 Features

  • 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.

🛠️ Technology Stack

Backend

  • Language: Go (v1.25.5)
  • Framework: Gin Web Framework
  • Database: PostgreSQL
  • Driver: pgx
  • Authentication: JWT (JSON Web Tokens) & OAuth2

Frontend

📸 Screenshots

Home Page

The landing page of EcoQuiz where users can discover new quizzes and communities. Home Page

Communities

Explore and join different communities to access specific quizzes. Communities Page

User Community View

View details of a specific community and its available quizzes. User Community View

Quiz Details

Get detailed information about a quiz before starting it. Quiz Details

Taking a Quiz

An interactive interface for answering quiz questions. Taking a Quiz

Results Page

Instant results and feedback after completing a quiz. Results Page

Quiz History

Track your past performance and review previous attempts. Quiz History

Leaderboard

See where you stand among other quiz takers. Leaderboard

🏁 Getting Started

Follow these instructions to set up the project locally.

Prerequisites

  • Go 1.25 or higher
  • Node.js & npm (or yarn/pnpm)
  • PostgreSQL database

Backend Setup

  1. Clone the repository:

    git clone <repository-url>
    cd EcoQuiz
  2. Environment Variables: Copy the .env.example file to .env and configure your database and JWT credentials.

    cp .env.example .env
  3. Install Dependencies:

    go mod download
  4. Run the Server:

    go run cmd/main.go

    The backend server will start on the port specified in your .env file (default is usually 8080).

Frontend Setup

  1. Navigate to the frontend directory:

    cd frontend
  2. Install Dependencies:

    npm install
  3. Run the Development Server:

    npm run dev

    The application will be accessible at http://localhost:5173 (or the port shown in your terminal).

📂 Project Structure

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.)
└── ...

🤝 Contributing

Contributions are welcome! Please fork the repository and create a pull request with your changes.

📄 License

This project is licensed under the MIT License.

About

EcoQuiz is a web app for creating and taking quizzes, tracking progress, and competing in groups and leaderboards. Built with Go and React for performance and scalability

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages