Refactor: Complete codebase reorganization and modernization
- Split server.js routes into modular files (server/routes/) - departures.js: Departure data endpoints - sites.js: Site search and nearby sites - config.js: Configuration endpoints - Reorganized file structure following Node.js best practices: - Moved sites-config.json to config/sites.json - Moved API_RESPONSE_DOCUMENTATION.md to docs/ - Moved raspberry-pi-setup.sh to scripts/ - Archived legacy files to archive/ directory - Updated all code references to new file locations - Added archive/ to .gitignore to exclude legacy files from repo - Updated README.md with new structure and organization - All functionality tested and working correctly Version: 1.2.0
This commit is contained in:
89
public/js/utils/constants.js
Normal file
89
public/js/utils/constants.js
Normal file
@@ -0,0 +1,89 @@
|
||||
/**
|
||||
* Application constants and configuration values
|
||||
* Centralizes magic numbers, API endpoints, and default settings
|
||||
*/
|
||||
|
||||
const Constants = {
|
||||
// Server configuration
|
||||
PORT: 3002,
|
||||
API_BASE_URL: 'http://localhost:3002',
|
||||
|
||||
// API Endpoints
|
||||
ENDPOINTS: {
|
||||
DEPARTURES: '/api/departures',
|
||||
SITES_SEARCH: '/api/sites/search',
|
||||
SITES_NEARBY: '/api/sites/nearby',
|
||||
CONFIG_UPDATE: '/api/config/update'
|
||||
},
|
||||
|
||||
// External API URLs
|
||||
EXTERNAL_APIS: {
|
||||
SL_TRANSPORT_BASE: 'https://transport.integration.sl.se/v1',
|
||||
OPENWEATHERMAP_BASE: 'https://api.openweathermap.org/data/2.5'
|
||||
},
|
||||
|
||||
// Refresh intervals (in milliseconds)
|
||||
REFRESH: {
|
||||
DEPARTURES: 5000, // 5 seconds
|
||||
WEATHER: 30 * 60 * 1000, // 30 minutes
|
||||
DARK_MODE_CHECK: 60000 // 1 minute
|
||||
},
|
||||
|
||||
// Default location (Stockholm, Sweden)
|
||||
DEFAULT_LOCATION: {
|
||||
LATITUDE: 59.3293,
|
||||
LONGITUDE: 18.0686,
|
||||
NAME: 'Stockholm'
|
||||
},
|
||||
|
||||
// Default site configuration
|
||||
DEFAULT_SITE: {
|
||||
ID: '1411',
|
||||
NAME: 'Ambassaderna'
|
||||
},
|
||||
|
||||
// Default search radius (in meters)
|
||||
DEFAULT_SEARCH_RADIUS: 5000, // 5km
|
||||
|
||||
// Transport mode identifiers
|
||||
TRANSPORT_MODES: {
|
||||
BUS: 'bus',
|
||||
METRO: 'metro',
|
||||
TRAIN: 'train',
|
||||
TRAM: 'tram',
|
||||
SHIP: 'ship'
|
||||
},
|
||||
|
||||
// CSS class names (for consistency)
|
||||
CSS_CLASSES: {
|
||||
DARK_MODE: 'dark-mode',
|
||||
ORIENTATION_NORMAL: 'normal',
|
||||
ORIENTATION_LANDSCAPE: 'landscape',
|
||||
ORIENTATION_VERTICAL: 'vertical',
|
||||
ORIENTATION_UPSIDE_DOWN: 'upsidedown',
|
||||
ORIENTATION_VERTICAL_REVERSE: 'vertical-reverse'
|
||||
},
|
||||
|
||||
// Time thresholds (in minutes)
|
||||
TIME_THRESHOLDS: {
|
||||
URGENT: 5, // Less than 5 minutes is urgent (red)
|
||||
WITHIN_HOUR: 60 // Within next hour
|
||||
},
|
||||
|
||||
// LocalStorage keys
|
||||
STORAGE_KEYS: {
|
||||
CONFIG: 'sl-departures-config'
|
||||
},
|
||||
|
||||
// Timezone
|
||||
TIMEZONE: 'Europe/Stockholm',
|
||||
|
||||
// Date/time formats
|
||||
DATE_FORMAT: {
|
||||
TIMEZONE: 'Europe/Stockholm',
|
||||
LOCALE: 'sv-SE'
|
||||
}
|
||||
};
|
||||
|
||||
// Export constants
|
||||
window.Constants = Constants;
|
||||
Reference in New Issue
Block a user