Skip to content

GeoHub is a web based quizzes platform designed for students and teachers to create and conduct quizzies.

License

Notifications You must be signed in to change notification settings

Ali-ElMikdadi/GeoHub

Repository files navigation

This is an OpenSource Web Application for LINK

GeoHub Logo

Mission Statement

GeoHub is a newly launched website, developed as Free and Open-Source Software with an educational purpose, dedicated to enhancing the geography learning experience for elementary students. Our mission is to offer an intuitive platform enabling teachers to conduct multiple quizzes, providing young learners with opportunities to practice and improve their geography knowledge. Furthermore, our mission extends to collaborating with the community to complete a comprehensive documentation. We aspire to be a solution for university students and beginner developers, offering a space to practice and refine web development skills.

Table of Contents

  1. The project is Free And Open-Source
  2. Looking around Other Similar Projects
  3. Choosing a Good Name
  4. Starting from What You Have
  5. Features and Requirements List
  6. Development Status
  7. Downloads
  8. Version Control and Bug Tracker Access
  9. Communication Channels
  10. Developer Guidelines
  11. Documentation
  12. Frequently Asked Questions (FAQ)
  13. Developer Documentation
  14. Codes of Conduct
  15. Screenshots
  16. Hosting
  17. Announcing
  18. License

The project is Free And Open-Source

Open-source Quizzes-based website where everyone may engage and design their own quiz. This system is free open-source software that was created under the provisions of the MIT License. Everyone is welcome to participate.

Looking around Other Similar Projects

As part of us launching an open-source project, we did our own research to find out similar and competitive projects to ours. Below are some similar sites links:

https://github.com/Laerim/QuizzMaker.git

https://github.com/andulica/QuizzMaker.git

https://github.com/the-jey/Flutter-QuizzMakerApp.git

https://github.com/skypirates17/QuizCreator.git

https://github.com/AtufaShireen/QuizCreator.git

One of the main reasons for starting our project was for an educational purpose especially targeting elementary teachers or for any creative developers who would like to use the software as a kickstart to boost their coding and designing skills.

Choosing a Good Name

As part of launching the open-source project, finding a good name was one of the blockers which faced us as a group. The name not only needs to be unique but also needs to give a general or some idea about what the project does. In addition, the project name needs to be easy to remember and not the same as other project’s names.

As part of choosing a good name, we as a group decided to vote on the following names: GeoPuzzler, GeoPuzzle, GeoKnowledge, Geographyhub, and GeoHub. And we as a group decided to choose “GeoHub” since it is easy to remember, unique and we have made our own research to research all the repos and find out that there are few results with this name.

Starting from What You Have

GeoHub Web Application should be transformed into a free and open-source system based on the wishes of its founders, which was initially created as a project for a course labeled ITCS 333 Internet and Web development course. The system has been built and written to a certain extent, and it is now time to properly package the code so that it may run on any computing platform.

Features and Requirements List

Features Overview:

User Registration and Login: Users can easily create accounts to be allowed to create and conduct quizzes. Emails could be used for login.

Quiz Creation and Editing: Allows users to easily create, customize, and edit quizzes.

Question Bank: stores a library of questions for the random quiz feature.

User History: Provides users with the history of the conducted and created quizzes made by them.

Randomized Quiz Generation: Dynamically generates quizzes with random question selection based on the chosen questions number.

User Feedback and Scoring: The user can be able to see the quiz feedback/correction after submitting the quiz or after the timer finishes.

Mobile Responsiveness: The website supports responsiveness between different screen sizes up until mobile view.

Search and Filter Functionality: Enables user to easy search for quizzes by the quiz name.

Requirements:

• You are required to install XAMPP.

• Any text editor you like. (Visual Studio Code for example).

• Bootstrap v5.3 is required since its used as the CSS Framework.

Development Status

Version: 1.0.0

Release Date: November 1,2023

Project Activity: Stable release with no recent updates

Bugs and Issues: No known bugs, extensively tested for stability.

Responsive Design: Fully responsive for seamless user experience on various devices

Community Engagement: Currently limited community engagement and seeking user feedback for future enhancements and addition of new features.

Roadmap: Considering future updates based on user feedback.

Documentation: Documentation is not currently available; contributions in this area would be greatly appreciated.

This version represents a stable release of “GeoHub”, offering a bug-free and responsive platform for users to easily create quizzes. Ongoing maintenance ensures continued stability, and user feedback is welcomed for potential future enhancements. Currently, documentation is not available, and contributions in this area would be highly valued.

Downloads

To get started with GeoHub, follow these simple steps:

  1. Download XAMPP: Install XAMPP as a prerequisite. Click here to download.

  2. Download GeoHub Source File: Click here to download the GeoHub source files.

  3. Download Visual Studio Code: Choose and install Visual Studio Code or any text editor you prefer. Click here to download.

  4. Download Bootstrap: GeoHub relies on Bootstrap for frontend design. Click here to download Bootstrap.

Enjoy using GeoHub locally on your machine!

Version Control and Bug Tracker Access

To maintain transparency and streamline our development process, we utilize the following tools for version control and bug tracking:

  • Version Control System: To ensure a smooth collaborative development process, we leverage strong use of version control using Git. This allows contributors to track changes, collaborate seamlessly, and maintain a clear project history. You can stay updated on the project's evolution by checking here.

  • Bug Tracker: For reporting bugs, suggesting improvements, or submitting feature requests, please use our GitHub Issues page.

By utilizing these tools, we aim to enhance collaboration, track project progress, and address issues promptly. Your contributions and feedback are crucial for the continuous improvement of GeoHub website.

Communication Channels

For effective communication and collaboration, we've established formal channels to connect with our GeoHub community:

  • Discussions Board: Join our Discussions board on GitHub to engage in thoughtful conversations, share ideas, and report issues. GeoHub Discussions

  • Email: For private inquiries, you can reach out to us via email at geohub.github@gmail.com.

We encourage you to use these channels for submitting comments, questions, and any other inquiries related to GeoHub. Your feedback is valuable to us!

Developer Guidelines

Welcome to the GeoHub development community! These guidelines are here to help you contribute effectively to the project. Please take a moment to review them before you start working on GeoHub.

Developers’ Interaction

  • All members must adhere to the community's guidelines and documentation.
  • Developers should communicate through email or MS Teams.

These are guidelines, not strict rules. They aim to streamline our workflow, improve teamwork, and benefit both individual developers and the products we create.

If you have questions about these guidelines, the GeoHub development team is here to help.

Code Format

  • Each line should contain only one code command.
  • Maintain a two-line margin between code blocks.

Code Scope

  • Use default constructors for classes with only default constructor values.
  • Use the "final" keyword unless it is for constants.

Other Code-Related Information

  • Variable names should be meaningful and relevant to each variable's use.
  • Each group/block of code should have a brief comment explaining its purpose.

Developing Secure Software

While it may not be the most exciting part of writing code, considering security risks is critical. Security risk analysis should begin early in the project and continue until completion.

  • Educate yourself about security risks associated with project components.
  • Avoid relying solely on out-of-the-box software and default configurations.

Which Programming Language Should I Use?

We don't have strict rules about programming languages. Currently, we use HTML, CSS, and JS, but we're open to changes for project improvement.

Code Comments

  • Code should be commented to explain why it does what it does.
  • Use consistent indentation.
  • Make use of horizontal whitespace (code paragraphs/blocks).
  • Avoid long lines (more than 75-80 characters).

Using the bug Tracker

The bug tracker is the preferred channel for reporting bugs, requesting features, and submitting pull requests.

Feature Requests

  • Ensure your idea fits within the project scope and goals.
  • Make a compelling case for the feature.

Requests for Pulls

  • Good pull requests include patches, improvements, and new features.
  • Keep pull requests focused and avoid unrelated commits.
  • Ask a maintainer about the pull request scope before starting.

Bug Report

Include:

  • Title: Brief and specific.
  • Summary: Detailed explanation.
  • Visual evidence: Screenshot or video.
  • Expected vs. actual result: Brief and to the point.
  • Reproducible steps: Steps that caused the bug.
  • Environment: Browser, OS, screen size, zoom level.
  • Console log: Determine the source of the problem.
  • Source URL: To locate the issue quickly.
  • Severity/priority: Impact level and investigation urgency.
  • Reporter name, assignee, due date, and customer/user conversation.

Compile this information into a report and email it to geohub.github@gmail.com for assistance.

Documentation

As mentioned earlier in the development status, the full documentation about the website is still not available since this is just as startup open-source project and the documentation is still under process. However, as a contributor to our project, you are required to have a moderate level of technical expertise, particularly in web development and server configuration. If you're familiar with version control systems like Git, setting up GeoHub locally using XAMPP involves cloning the repository, configuring Apache and MySQL, and creating a new database in phpMyAdmin. Database credentials need to be updated in the config.php file. Dependencies such as Bootstrap for frontend design are utilized, and a basic understanding of PHP is beneficial for navigating and customizing the backend logic. While the provided instructions guide you through the process, users with some experience in JavaScript, HTML, and CSS (especially Bootstrap) will find it easier to explore and modify GeoHub's frontend. Overall, users with a foundational understanding of web development concepts will navigate the setup and customization more comfortably.

Frequently Asked Questions (FAQ)

1. What is GeoHub?

GeoHub is a web application that allows you to create and manage quizzes. It provides an easy and interactive platform for quiz-related activities.

2. How can I use GeoHub?

To use GeoHub, simply visit the hosted version at GeoHub Website. If you want to contribute or explore the code, check out the GitHub Repository.

3. Is GeoHub free to use?

Yes, GeoHub is completely free to use and open-source for all users.

4. I have a suggestion or found a bug. Where can I share it?

Feel free to share your suggestions or report bugs on our Issues page. We appreciate your feedback!

5. How can I stay updated on GeoHub's progress?

Follow us on GitHub for updates. You can also join our community discussions on Discussions for announcements and news.

Developer Documentation

Overview

Welcome to the developer documentation for GeoHub! This section provides a comprehensive guide to understanding and contributing to the codebase of our web application. GeoHub is built primarily with PHP, with additional components written in JavaScript, HTML, and CSS using the Bootstrap framework.

Table of Contents

  1. Getting Started
  2. Dependencies
  3. Backend (PHP)
  4. Frontend (JavaScript, HTML, CSS)

Getting Started

To set up GeoHub locally using XAMPP, follow these steps:

  1. Clone the repository: git clone https://github.com/Fronexe/GeoHub.git
  2. Move the project folder to XAMPP's htdocs directory.
  3. Start XAMPP and ensure Apache and MySQL are running.
  4. Create a new database in phpMyAdmin.
  5. Configure the database by updating the config.php file with your database credentials.
  6. Navigate to http://localhost/GeoHub in your browser.

Dependencies

GeoHub relies on the following key dependencies:

  • Bootstrap: Frontend framework for responsive and mobile-first design. For a complete list of dependencies, refer to the composer.json file.

Backend

PHP

The backend logic is primarily written in PHP. Key files and directories to be aware of include:

  • Controllers

Frontend

JavaScript, HTML, CSS (Bootstrap)

The frontend utilizes JavaScript with some use of AJAX for interactivity, HTML for structure, and CSS with Bootstrap for styling.

Code of Conduct

GeoHub Code of Conduct

Overview

As contributors and maintainers of this project, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating the documentation, submitting pull requests, and any other activities.

We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, or nationality.

Our Standards

Some Examples of behavior that contributes to creating a positive environment include:

• Using welcoming and inclusive language • Being respectful of differing viewpoints and experiences • Gracefully accepting constructive criticism • Focusing on what is best for the community • Showing empathy towards other community members

Some Examples of unacceptable behavior by participants include:

• Trolling, insulting/derogatory comments, and personal or political attacks • Public or private harassment • Publishing others' private information, such as a physical or electronic address, without explicit permission • Other conduct which could reasonably be considered inappropriate in a professional setting

Responsibilities of Contributors

Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned with this Code of Conduct or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.

Scope

This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event.

Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at geohub.github@gmail.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident.

Attribution

This Code of Conduct is adapted from the Contributor Covenant, version 2.0, available at https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.

Screenshots

Found below are screenshots of the demo website that is hosted:

Main Page

GeoHub Main Page

About Us

GeoHub About Us

Terms and Conditions

GeoHub Terms and Conditions

Quizzes Page

GeoHub Quizzes Page

Create Quiz

GeoHub Create Quiz

Conducting Quiz

GeoHub Conducting Quiz

Quiz Feedback

GeoHub Quiz Feedback

Sign up Page

GeoHub Sign up Page

Hosting

We were able to successfully host the website on a free hosting service called Infinity Free and the following link can be used to access the demo website: here

Announcements

Exciting news, GeoHub Announcing! Advertising is now available! Stay updated here. Let's make GeoHub better!

The GeoHub Team

License

Copyright (c) 2023 GeoHub

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

About

GeoHub is a web based quizzes platform designed for students and teachers to create and conduct quizzies.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors 4

  •  
  •  
  •  
  •