Home Page of Pop Quiz
-
Get ready to dive into a universe where learning meets excitement, fun, and sheer awesomeness! π Pop Quiz isn't your run-of-the-mill platform; it's the ultimate destination for everything educational and entertaining. Whether you're a student eager to learn, a teacher looking to engage, or just someone craving a more thrilling way to gain knowledge, Pop Quiz has you covered. π
-
Imagine wanting to learn a new language but finding textbooks dull and uninspiring. Enter Pop Quiz, where you can leap into language learning like never before! Craft your customized quizzes to fit your unique learning style and embark on a thrilling journey of linguistic exploration at your own pace. π
-
But there's more! Pop Quiz isn't just about making your quizzes; it's a treasure trove of fascinating content crafted by users passionate about sharing their knowledge. Explore quizzes across a wide range of subjects and discover the one that lights up your curiosity and fuels your hunger for learning. π‘
-
And let's talk about the excitement of the leaderboard! Get ready for a dose of motivation and engagement as you aim for the top, collecting points and reveling in the glory of your achievements. Whether it's dominating a specific quiz leaderboard or shining among the elite on the global stage, you're in for an exhilarating ride. π
-
So, are you ready to jump into the adventure of a lifetime with Pop Quiz? Lean back, gear up, and immerse yourself in a world where education and fun collide in one thrilling experience. Stay cool, and let's kick off this incredible journey! π
- β Authentication System: Securely Sign in/Sign Up with email or Google API, with verification email for added security, and get started with your custom profil.
- β Custom Exploration: Dive into subjects of your choice and challenge your knowledge with personalized quizzes.
- β Access Public Quizzes: Explore a broad spectrum of topics through quizzes created by other users.
- β Discover a World of Learning: Enhance your language skills, master programming, deepen your understanding of art, or explore the depths of history with our interactive learning quizzes.
- β Leaderboards: See where you stand in specific subjects or overall rankings and track your progress.
- β User-Friendly Design: Navigate the app effortlessly with a clear and intuitive interface.
- β Personalized Learning Experience: Learn at your pace, on your terms.
- β Collaborative Features: Connect with other users, share insights, and collaborate on quiz creation, stream and learn with your friends.
- β Gamification: Motivate your learning journey with badges, points, and rewards as you complete quizzes and reach new milestones.
- β Share a Quiz: Share quiz links with friends to test their knowledge and challenge them to beat your score.
- β Regular Updates: Benefit from ongoing enhancements and new functionalities for a constantly improving learning experience.
Please note that not all features mentioned above may be currently implemented. We're continuously working to improve the app. Additionally, each user has their custom profile with a set of quizzes ready to take and ignite their learning journey.
-
The technologies currently in use or planned for future development phases of Pop Quiz include:
-
FrontEnd: ReactJS with Tailwind for styling.
-
Backend: Firebase.
-
Caching: Redis.
-
Integration Testing: Selenium.
-
End-to-End Testing: Cypress.
-
Application Performance Monitoring (APM): Datadog.
-
Continuous Integration and Deployment (CI/CD): GitHub Actions.
-
Hosting: Vercel.
Technology Stack Pop Quiz
- The technologies utilized for the FrontEnd are ReactJS with some lightweight CSS using Tailwind. The backend is handled by Firebase, and Redis is employed for caching. For testing, Selenium is utilized for Integration Testing, and Cypress for End-to-End Testing. Datadog is used for Application Performance Monitoring (APM). GitHub Actions are implemented for Continuous Integration and Deployment (CI/CD), and the application is hosted on Vercel.
Architecture of Pop Quiz Application
- To start using Pop Quiz, you can either check the deployed version online at Pop Quiz or follow those steps to get up and running in your local machine:
1- First Clone the repository to your local machine by running:
git clone https://github.com/Josh-techie/Pop-Quiz
2- Change directory to the Pop Quiz project by running:
cd Pop-Quiz
3- Install the dependencies by running:
npm install
If it throws an error try forcing it, eventhough it's not recommended! Run the following:
npm install --force
- Once the dependencies are installed, start the application on your local machine.
4- Run the application in your local and enjoy the diverse quizes in the app by running:
npm run start
- Now, you can enjoy exploring the diverse quizzes available in the app on
localhost:8080
.
-
The mockups for Pop Quiz were initially created using Figma. While these mockups provided a starting point for the project, it's important to note that the development has progressed significantly beyond them. However, they still serve as valuable reference points for the project's design direction.
-
If you have skills in design and would like to contribute to further enhancing the user interface and experience, your expertise would be invaluable. Feel free to reach out to me via youssef.abouyahia@e-polytechnique.ma or find more about my socials in the About Repo Owner section.
-
To view the original mockups on Figma, please visit: Mockups
- Pop Quiz is open source as I'm an avid believer of free education π. We can't monopolize education for financial gain π²π², so I'm open sourcing the project. Anyone can explore the deep inside of Pop Quiz, or you can be an active contributor to the project. To do so, please refer to these guidelines:
-
Familiarize Yourself with the Project: Before contributing, take some time to understand the project's goals, features, and architecture. You can explore the codebase and documentation to get a better grasp.
-
Check for Existing Issues: Browse through the issue tracker to see if there are any open issues or feature requests that align with your interests or skills. If you find an issue you'd like to work on, feel free to assign yourself to it.
-
Fork the Repository: If you're ready to contribute, fork the Pop Quiz repository to your own GitHub account. This will create a copy of the project that you can freely experiment with.
-
Make Changes: Create a new branch in your forked repository to work on your changes. Make sure to follow the coding conventions and guidelines outlined in the project's documentation.
-
Test Your Changes: Before submitting a pull request, thoroughly test your changes to ensure they work as expected. This includes running existing tests and writing new ones if necessary.
-
Submit a Pull Request: Once you're confident in your changes, submit a pull request to the main repository. Provide a clear and concise description of the problem you're solving and the changes you've made. Be open to feedback and willing to make adjustments if requested.
-
Review and Iterate: Your pull request will undergo review by project maintainers and other contributors. Be responsive to feedback and iterate on your changes as needed until they meet the project's standards.
-
Celebrate Your Contribution: Once your pull request is merged, take a moment to celebrate your impact on Pop Quiz! Your efforts have helped bring education closer to people around the globe. Each contribution, no matter how small, moves us forward in our mission to make learning accessible to everyone. So, give yourself a pat on the backβyou've made a difference!
- Thank you for considering contributing to Pop Quiz. Together, we can make learning a fun and interactive experience for all!
-
As a developer actively involved in the ongoing development of Pop Quiz, I've taken the opportunity to document and share my insights on this project journey through my article on Medium.
-
If you're interested in gaining a deeper understanding of this project and the development process, I invite you to check out: Pop-Quiz-Article
- Thanks to saad484 : Their support has been instrumental in making this project a success. Thank you, Saad, for being a great friend and the first collaborator! π
-
@Josh-techie
| Software Engineer StudentReach out to me if you need any help or have any questions.