The application will track STEM-related events, making things accessible and affordable.
- ✅ Fetches STEM events from Eventbrite API every 6 hours
- ✅ Searches within 100km radius of user location
- ✅ Filters events using comprehensive STEM keyword list (25+ keywords)
- ✅ Prevents duplicate events between sources
- ✅ Automatically categorizes events by STEM subjects (Biology, Chemistry, Physics, etc.)
- ✅ Estimates appropriate grade levels and age groups
- ✅ Determines virtual vs onsite event types
- ✅ Extracts cost and location information
- ✅ Orange "Eventbrite" tags on full event cards
- ✅ "EB" badges on map carousel cards
- ✅ Clear distinction between event sources
- ✅ Consistent styling across components
- ✅ Local caching (6 hours for Eventbrite, 24 hours for MapSTEM)
- ✅ Background sync manager with intelligent scheduling
- ✅ Graceful error handling and fallback to cached data
- ✅ Debounced search and optimized API calls
- ✅ Pull-to-refresh functionality in event lists
EVENTBRITE_API_KEY=ZCMCQB6JRUBO2IOB6G
EVENTBRITE_CLIENT_SECRET=6V6VM2SNYISACEYIZN2GKM7BGZHL2GFNNLYFM4PBULB32IKFED
EVENTBRITE_PRIVATE_TOKEN=6BV2HHUTQA2WDN5OGAXF
EVENTBRITE_PUBLIC_TOKEN=KIHZTWNMHR7ISHENYQK7
ENABLE_EVENTBRITE_INTEGRATION=true
EVENTBRITE_CACHE_DURATION=21600000
API_CACHE_DURATION=86400000
The integration uses 25+ keywords to identify STEM events:
- Science: Science, Biology, Chemistry, Physics, Astronomy, Geology
- Technology: Technology, AI, Machine Learning, Data Science, Computer Science
- Engineering: Engineering, Robotics, Programming, Coding
- Mathematics: Math, Mathematics, Statistics
- Interdisciplinary: STEM, STEAM, Innovation, Research, Laboratory
- ✅ EventbriteService class for API management
- ✅ BackgroundSyncManager for automated syncing
- ✅ ConfigValidator for setup verification
- ✅ EventbriteDebugger for testing and troubleshooting
- ✅ Enhanced error handling and fallback mechanisms
- ✅ Proper image handling for both MapSTEM and Eventbrite events
- ✅ URL handling for Eventbrite event pages
Most of our packages and libraries require some knowledge in JavaScript. However, you don't need to worry because you can learn:
How our team operates:
These are the list of things you need for your local environment. It's a good idea to have a code editor like Visual Studio Code. Otherwise, follow these simple steps and/or watch the YouTube guides to set up your local project:
- Install Windows terminal
- Install Git
- Install Node JS
- Use your terminal for the following commands:
npm install install --global expo-cliexpo registerexpo loginTip
You can follow this Windows YouTube Guide
- Install iTerm2 terminal
- Install homeBrew
- Use your terminal for the following commands:
brew install nodebrew install watchmannpm install install --global expo-cliexpo registerexpo loginTip
You can follow this MacOS YouTube Guide
Use your code editor (e.g., Visual Studio Code) to run the following commands:
git clone https://github.com/STEM-E-Youth-Career-Development-Program/map-app.gitnpm installnpm startThis contains a library of information (e.g., user information):
fetch('https://mapstem-api.azurewebsites.net/api/')Tip
You can access the page here
Contributions are what make this community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated. With that said, there are a few ways you can add:
- Did you spot any errors?
- What features could we add?
- What would improve the app?
- How can we work better as a team?