{"id":18207641,"url":"https://github.com/luayasaadsson/parentbuddy","last_synced_at":"2026-04-04T08:42:16.436Z","repository":{"id":258600413,"uuid":"869537113","full_name":"Luayasaadsson/ParentBuddy","owner":"Luayasaadsson","description":"An AI-based application that helps parents discover and plan activities for their children, based on geolocation and interests. The app provides personalized recommendations and allows users to save their favorite activities for future use.","archived":false,"fork":false,"pushed_at":"2024-10-18T12:17:55.000Z","size":1557,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-07T19:52:48.580Z","etag":null,"topics":["bcrypt","cors","dotenv","express","jwt","mongoose","nodejs","openai","radix-ui","react","shadcn-ui","tailwindcss","typescript"],"latest_commit_sha":null,"homepage":"https://parent-buddy-ecru.vercel.app","language":"TypeScript","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/Luayasaadsson.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}},"created_at":"2024-10-08T13:13:44.000Z","updated_at":"2025-02-18T08:17:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"9f43c1d8-f4f9-4296-8e7f-69237ea58765","html_url":"https://github.com/Luayasaadsson/ParentBuddy","commit_stats":null,"previous_names":["luayasaadsson/parentbuddy"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Luayasaadsson%2FParentBuddy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Luayasaadsson%2FParentBuddy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Luayasaadsson%2FParentBuddy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Luayasaadsson%2FParentBuddy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Luayasaadsson","download_url":"https://codeload.github.com/Luayasaadsson/ParentBuddy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247721928,"owners_count":20985083,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["bcrypt","cors","dotenv","express","jwt","mongoose","nodejs","openai","radix-ui","react","shadcn-ui","tailwindcss","typescript"],"created_at":"2024-11-03T13:03:47.523Z","updated_at":"2025-12-30T20:11:58.125Z","avatar_url":"https://github.com/Luayasaadsson.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ParentBuddy\n\n**ParentBuddy** is an AI-based application designed to help parents discover and plan activities for their children, based on location and personal preferences. With a user-friendly design and AI-driven recommendations, ParentBuddy offers a personalized experience, making it easier to create unforgettable moments with your children.\n\n## Description\n\nParentBuddy allows users to:\n\n- **Get activity recommendations based on geolocation and personal preferences.**\n- **Save favorites and track activity history.**\n- **Switch between light and dark mode using a smooth theme toggle button.**\n- **Interact with a chatbot to get activity recommendations directly.**\n- **Access detailed information about privacy policies, terms of service, and contact details.**\n\nThe app combines modern web development technology with powerful AI to provide parents with relevant and exciting activities, no matter where they are. Even if location sharing is denied, the app will continue to provide general recommendations.\n\n## Features\n\n- **AI-driven recommendations:** Using OpenAI, users get personalized activity suggestions based on location, preferences, and their child's age.\n- **Geolocation support:** Enable location sharing to get personalized activities near the user’s location. If location sharing is denied, the app will still provide general activity recommendations.\n- **Favorites and history:** Users can save favorite activities and keep track of past activities.\n-**Scroll to top button:** For better user experience.\n- **Dark/Light mode:** Easily switch between light and dark themes with a toggle button.\n- **Responsive design:** Designed to work seamlessly on both desktop and mobile devices.\n- **Comprehensive documentation:** Includes easy access to Privacy Policy, Terms of Service, and Contact Information.\n\n## Technical Architecture\n### Frontend\n- **Framework:** React + TypeScript\n- **UI Components:** Shadcn/ui and Tailwind CSS for styling.\n- **State Management:** Hooks are used to manage user activity history and favorites.\n- **Geolocation:** Uses the browser's built-in JavaScript Geolocation API to obtain the user's location for personalized activity recommendations.\n- **AI Integration:** OpenAI API is used to generate activity recommendations based on user input.\n\n### Backend\n- **Express.js:** Backend API handles user data, activities, and favorites.\n- **MongoDB:** Database for storing user information, activity history, and recommendations.\n- **JWT Authentication:** Secure login and registration using JSON Web Tokens.\n- **bcrypt:** Used to securely hash passwords before saving them to the database, protecting users' sensitive information.\n\n## Installation and Configuration\n\n### Prerequisites\n\n- **Node.js (v14 or higher)**.\n- **Npm or yarn**.\n\n### Steps\n\n1. Clone the repository:\n```\ngit clone https://github.com/Luayasaadsson/ParentBuddy\n```\n\n2. Navigate to the project directory:\n```\ncd parentbuddy\n```\n\n3. Install dependencies\n```\nnpm install \n\nor\n \nyarn install\n```\n\n4. Start the development server:\n```\nnpm run dev \n\nor\n\nyarn dev\n```\n\n5. Open the app in your browser:\n```\nhttp://localhost:5173\n```\n\n## Environment Variables\nTo run the application, you will need to set up environment variables for both the backend and frontend. Below are the steps:\n\n### Backend\n\nCreate a config.env file in the root of your backend directory and add the following variables:\n\n```\nDATABASE=your_mongodb_connection_string\nDB_NAME=ParentBuddy\nDATABASE_PASSWORD=YOUR_DB_PASSWORD\nPORT=6006\nOPENAI_API_KEY=YOUR_OPENAI_API_KEY\nJWT_SECRET=yoursecretkey\n```\n\nThese variables are used to connect to the MongoDB database, authenticate users, and integrate with OpenAI.\n\n### Frontend\nFor the frontend, you need to configure environment variables based on whether you are in a development or production environment:\n\n1. Create a ```.env.local``` file for local development:\n```\nREACT_APP_API_URL=http://localhost:6006/api\n```\n2. Create a ```.env.production``` file for production deployment:\n```\nREACT_APP_API_URL=https://parentbuddy.onrender.com/api\n```\n\nThese variables ensure that the frontend communicates with the correct backend server, depending on the environment.\n\n## Usage\n\n### Starting the Application\n\nOnce the server is running, users can interact with the ParentBuddy app by:\n\n1. **Registering or Log In**: Create an account or log in to get personalized activity recommendations.\n\n2. **Exploring Activities**: Select your preferences and child's age, and allow location sharing to get recommendations for nearby activities.\n\n3. **Save Favorites**: Save activities you like for easy access in the future.\n\n## Example\n\n**Get Activity Suggestions**: When you fill in the form with your child’s age and preferences, submit the form to receive AI-generated activity suggestions.\n\n**Save Favorite Activities**: Click on the heart icon next to activities to save them for future use.\n\n## Components and Structure\n\nThe app is organized as follows:\n\n- **components/pages:** Contains pages like ```AboutPage```, ```ContactPage```, ```DevelopersPage```, ```LandingPage```, ```PrivacyPolicy```, and ```TermsOfService```.\n\n- **components/shared:** Shared components like ```ChatLoader```, ```Layout```, ```Footer```, ```ScrollButton```, and ```ThemeToggleButton```.\n\n- **components/activity:** Forms and recommendation features, including ```ActivityForm```, ```ActivityHistory```, ```FavoriteActivities``` and ```RecommendationDisplay```.\n\n- **hooks:** Custom hooks like ```useActivityForm```, ```useActivityHistory```, ```useAuth``` and ```useAuthStatus```.\n\n- **lib:** Helper functions such as ```utils```.\n\n## Deployment\n\n1. Build for production:\n\n```\nnpm run build \n\nor \n\nnpm yarn\n```\n\n2. Deploy to your preferred hosting service, such as Vercel, Netlify, or Heroku.\n\n## Contributing\n\nAll contributions are welcome! If you'd like to contribute with code or improvements:\n\n1. Fork the repository.\n2. Create a new branch for your changes.\n3. Submit a pull request when your changes are ready.\n\n## Contact\n\nFor questions or feedback, contact me at:\n\n- **Email: luay.asaadsson@chasacademy.com**","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluayasaadsson%2Fparentbuddy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluayasaadsson%2Fparentbuddy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluayasaadsson%2Fparentbuddy/lists"}