{"id":26234220,"url":"https://github.com/navin772/globetrotter","last_synced_at":"2026-04-10T12:33:08.591Z","repository":{"id":281679527,"uuid":"941150407","full_name":"navin772/globetrotter","owner":"navin772","description":"Guess the famous destinations across the globe 🌎!","archived":false,"fork":false,"pushed_at":"2025-03-18T11:36:28.000Z","size":301,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-27T22:44:16.079Z","etag":null,"topics":["api","js","mongodb","python","selenium","vercel"],"latest_commit_sha":null,"homepage":"https://globetrotterfrontend.vercel.app/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/navin772.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-03-01T16:00:29.000Z","updated_at":"2025-03-18T11:36:31.000Z","dependencies_parsed_at":"2025-03-18T10:33:20.120Z","dependency_job_id":null,"html_url":"https://github.com/navin772/globetrotter","commit_stats":null,"previous_names":["navin772/globetrotter"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/navin772/globetrotter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/navin772%2Fglobetrotter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/navin772%2Fglobetrotter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/navin772%2Fglobetrotter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/navin772%2Fglobetrotter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/navin772","download_url":"https://codeload.github.com/navin772/globetrotter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/navin772%2Fglobetrotter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31642970,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T07:40:12.752Z","status":"ssl_error","status_checked_at":"2026-04-10T07:40:11.664Z","response_time":98,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","js","mongodb","python","selenium","vercel"],"created_at":"2025-03-13T01:29:31.969Z","updated_at":"2026-04-10T12:33:08.582Z","avatar_url":"https://github.com/navin772.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Globetrotter\n\nGlobetrotter is a full-stack web application where users get cryptic clues about famous places and must guess which destination it refers to. Once they guess, they'll unlock fun facts, trivia, and surprises about the destination!\n\n## Project Structure\n\nThe project is divided into two main parts:\n\n- **Backend**: Python FastAPI application with MongoDB Atlas database\n- **Frontend**: React.js application with styled-components\n- **Tests**: E2E tests written with Selenium WebDriver\n\n## Features\n\n- 🌍 Random destination questions with cryptic clues\n- 🎮 Multiple-choice answers with immediate feedback\n- 🎉 Animations for correct/incorrect answers\n- 📊 Score tracking system\n- 👥 User registration with unique usernames\n- 🔗 \"Challenge a Friend\" feature with shareable links\n- 📱 Responsive design for all devices\n\n## Setup and Installation\n\n### Prerequisites\n\n- Node.js (v14+)\n- Python (v3.8+)\n- MongoDB Atlas account (or local MongoDB)\n\n### Backend Setup\n\n1. Navigate to the backend directory:\n```\ncd backend\n```\n\n2. Install dependencies:\n```\npip install -r requirements.txt\n```\n\n3. Create a `.env` file with your MongoDB Atlas credentials:\n```\nMONGODB_USERNAME=your_username\nMONGODB_PASSWORD=your_password\nSECRET_KEY=your_secret_key\n```\n\nNote: The MongoDB URI will be constructed in the code with proper escaping of the username and password.\n\n4. Run the server:\n```\npython run.py\n```\n\nThe backend will be available at http://localhost:8000\n\nThe hosted backend is available at https://globetrotterbackend.vercel.app, check the health with https://globetrotterbackend.vercel.app/health.\n\n5. Backed tests:\n\nEndpoint tests are written in `tests/test_api.py` and can be run with the following command:\n```bash\npytest tests/test_api.py\n```\nMake sure the env is correctly configured and the backend is running before running the tests.\n\n\n### Frontend Setup\n\n1. Navigate to the frontend directory:\n```\ncd frontend\n```\n\n2. Install dependencies:\n```\nnpm install\n```\n\n3. Create a `.env` file with the following content:\n```\nREACT_APP_API_URL=http://localhost:8000\n```\n\n4. Start the development server:\n```\nnpm start\n```\n\nThe frontend will be available at http://localhost:3000\n\n## Running the Application\n\nYou can use the provided script to run both the backend and frontend:\n\n```\n./run_app.sh\n```\n## Running E2E tests with Selenium\n\n1. Install the required packages:\n    ```bash\n    pip install selenium pytest\n    ```\n2. Run the tests:\n    ```bash\n    pytest tests/test-e2e.py\n    ```\n\n## Deployment\n\n### Backend Deployment on Vercel\n\n1. Make sure you have the Vercel CLI installed:\n```\nnpm install -g vercel\n```\n\n2. Set up your environment variables in Vercel:\n```\nvercel secrets add mongodb_username your_username\nvercel secrets add mongodb_password your_password\nvercel secrets add secret_key your_secret_key\n```\n\n3. Deploy the backend:\n```\ncd backend\nvercel deploy\n```\n\n### Frontend Deployment on Vercel\n\n1. Update the `.env` file with your deployed backend URL:\n```\nREACT_APP_API_URL=https://your-backend-url.vercel.app\n```\n\n2. Deploy the frontend:\n```\ncd frontend\nvercel deploy\n```\n\n## MongoDB Atlas Setup\n\nThe application uses MongoDB Atlas for the database. The data is stored in:\n\n- Database: `city_data`\n- Collection: `cities`\n\nThe collection contains documents with the following structure:\n```json\n{\n  \"city\": \"City Name\",\n  \"country\": \"Country Name\",\n  \"clues\": [\"Clue 1\", \"Clue 2\"],\n  \"fun_fact\": [\"Fun Fact 1\", \"Fun Fact 2\"],\n  \"trivia\": [\"Trivia 1\", \"Trivia 2\"]\n}\n```\n\n## Dataset\n\nThe initial dataset was expanded to 105 destinations. The dataset is stored in the `city_data` collection in the MongoDB database.\n\nThe application uses a dataset of famous destinations with:\n- City and country information\n- Cryptic clues about each destination\n- Fun facts and trivia\n\nThe dataset is stored on the backend to prevent users from accessing all questions and answers through the browser.\n\n## Future Enhancements\n\n- Add more destinations to the dataset\n- Implement difficulty levels\n- Add timed challenges\n- Create leaderboards\n- Add more social sharing options\n- Implement user authentication with OAuth\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnavin772%2Fglobetrotter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnavin772%2Fglobetrotter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnavin772%2Fglobetrotter/lists"}