Skip to content

STEM-E-Youth-Career-Development-Program/map-app

Repository files navigation

Contributors Issues Discord-Server


Demo

Table of Contents


-back to top-

About The Project

The application will track STEM-related events, making things accessible and affordable.

Key Features Implemented ✅

1. Automatic Event Discovery

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

2. Smart STEM Classification

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

3. Visual Indicators

  • ✅ Orange "Eventbrite" tags on full event cards
  • ✅ "EB" badges on map carousel cards
  • ✅ Clear distinction between event sources
  • ✅ Consistent styling across components

4. Performance Optimization

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

5. Environment Variables Added:

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

6. STEM Keywords Used for Filtering

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

7. Technical Implementation

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


Built With

  • React
  • Google
  • NPM
  • Node.js
  • Expo

-back to top-

Getting Started

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:


-back to top-

Prerequisites

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:

Windows

  1. Install Windows terminal
  2. Install Git
  3. Install Node JS
  4. Use your terminal for the following commands:
npm install install --global expo-cli
expo register
expo login

Tip

You can follow this Windows YouTube Guide


MacOS

  1. Install iTerm2 terminal
  2. Install homeBrew
  3. Use your terminal for the following commands:
brew install node
brew install watchman
npm install install --global expo-cli
expo register
expo login

Tip

You can follow this MacOS YouTube Guide


-back to top-

Running the App

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.git
npm install
npm start

-back to top-

API Page

This contains a library of information (e.g., user information):

fetch('https://mapstem-api.azurewebsites.net/api/')

Tip

You can access the page here


-back to top-

How to Contribute

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:


-back to top-

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors