A comprehensive U.S. Geography study application originally created to support my own preparation for my US Geography exam. I hope this tool proves helpful to other students striving for success in their geography studies.
- Study Mode: Interactive learning with labels and detailed information.
- Practice Mode: Test your knowledge without pressure.
- Exam Mode: Timed practice sessions simulating the real exam environment.
- All 50 U.S. States
- Major Cities: Washington D.C., New York City, Philadelphia, Boston, Charleston, Chicago, Austin, Richmond, Denver
- Bodies of Water: Atlantic Ocean, Pacific Ocean, Gulf of Mexico, Chesapeake Bay
- Great Lakes: Superior, Michigan, Huron, Erie, Ontario
- Major Rivers: Hudson, Ohio, Mississippi, Missouri, Red, Columbia, Colorado, Rio Grande
- Mountain Ranges: Sierra Nevada, Rocky Mountains
- Geographic Regions: Great Basin, Great Plains, Florida Keys, Long Island, Cape Cod
- Countries: Canada, Mexico
- Special Coordinates: 49th Parallel North
- Visual Feedback: Color-coded markers for correct/incorrect answers.
- Progress Tracking: Real-time scoring and question counter.
- Detailed Information: Learn about each geographic feature.
- Responsive Design: Works on desktop and mobile devices.
- Node.js (version 16 or higher)
- npm or yarn package manager
-
Clone the repository
git clone <repository-url> cd mapquiz
-
Install dependencies
npm install
-
Start the development server
npm run dev
-
Open your browser Navigate to
http://localhost:5173to start using the application.
- Select "Study Mode" from the control panel.
- Click on any geographic feature on the map.
- View detailed information about the selected feature.
- Labels are visible to help you learn locations.
-
Choose "Practice Mode" or "Exam Mode."
-
The system will randomly select a feature for you to identify.
-
Click on the correct location on the map.
-
Get immediate feedback with color-coded results:
- 🟢 Green: Correct answer
- 🔴 Red: Incorrect answer
- 🔵 Blue: Currently selected feature
- Click "Feature List" to see all geographic features organized by type.
- Use this view to study and review all available features.
- Click on any feature to view its location on the map.
This tool aligns with MAP EXAM specifications:
- Total Questions: 25 per exam
- Passing Score: 80% (20 correct answers)
- Time Limit: Practice with time constraints similar to the actual exam.
- Frontend Framework: React 18 with TypeScript
- Build Tool: Vite
- Styling: Tailwind CSS
- Maps: React Simple Maps with D3 projections
- Icons: Lucide React
- Map Data: US Atlas from TopoJSON
mapquiz/
├── src/
│ ├── components/
│ │ ├── USMap.tsx # Interactive map component
│ │ ├── StudyInterface.tsx # Study mode controls and scoring
│ │ └── FeatureList.tsx # List view of all features
│ ├── data/
│ │ └── geographyFeatures.ts # Geographic feature definitions
│ ├── types/
│ │ └── geography.ts # TypeScript type definitions
│ ├── App.tsx # Main application component
│ └── main.tsx # Application entry point
├── package.json
├── vite.config.ts
├── tailwind.config.js
└── tsconfig.json
- Edit
src/data/geographyFeatures.ts. - Add new geographic features with coordinates and type.
- Include the feature ID in the
examFeaturesfilter if it should appear in exams.
- Edit styles in
src/components/USMap.tsx. - Customize colors, marker sizes, and hover effects.
- Adjust map projection settings as needed.
This project was developed with personal use in mind, but contributions are welcome to enhance its value for others:
- Fork the repository.
- Create a feature branch (
git checkout -b feature/new-feature). - Commit your changes (
git commit -am 'Add new feature'). - Push to the branch (
git push origin feature/new-feature). - Create a Pull Request.
This project is open-source and intended for educational purposes to assist with MAP EXAM preparation.
Features not appearing on map
- Verify coordinates are within the Albers USA projection bounds.
- Check that the feature is included in the
examFeaturesarray.
Map not loading
- Ensure you have an active internet connection.
- Check your browser console for JavaScript errors.
Performance issues
- The app is optimized for modern browsers.
- Recommended: recent versions of Chrome, Firefox, or Safari.
If you encounter any issues or have questions, please refer to the troubleshooting section or create an issue in the repository.