{"id":20324078,"url":"https://github.com/abtaaahi/dont-worry","last_synced_at":"2026-02-12T14:01:45.612Z","repository":{"id":254343482,"uuid":"846177692","full_name":"abtaaahi/Dont-Worry","owner":"abtaaahi","description":"Your Personal Therapist","archived":false,"fork":false,"pushed_at":"2024-10-23T19:31:01.000Z","size":16781,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-24T05:58:42.002Z","etag":null,"topics":["coroutines","customsearch-api","firebase-realtime-database","fragments","glide","kotlin","lottie-animation","mongodb","mvvm","nodejs","oauth2","openweathermap-api","programmablesearchengine","python","quotes-api","room-database","socketio","tmdb-api","youtube-api-v3"],"latest_commit_sha":null,"homepage":"https://sites.google.com/view/dontworrylinks/home","language":"Kotlin","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/abtaaahi.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-08-22T17:18:58.000Z","updated_at":"2024-10-23T19:31:04.000Z","dependencies_parsed_at":"2024-08-22T22:38:24.035Z","dependency_job_id":"9599d704-4e36-44f9-ad4c-4b56404edd37","html_url":"https://github.com/abtaaahi/Dont-Worry","commit_stats":null,"previous_names":["abtaaahi/dont-worry"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abtaaahi%2FDont-Worry","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abtaaahi%2FDont-Worry/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abtaaahi%2FDont-Worry/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abtaaahi%2FDont-Worry/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/abtaaahi","download_url":"https://codeload.github.com/abtaaahi/Dont-Worry/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248468197,"owners_count":21108774,"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":["coroutines","customsearch-api","firebase-realtime-database","fragments","glide","kotlin","lottie-animation","mongodb","mvvm","nodejs","oauth2","openweathermap-api","programmablesearchengine","python","quotes-api","room-database","socketio","tmdb-api","youtube-api-v3"],"created_at":"2024-11-14T19:32:02.995Z","updated_at":"2026-02-12T14:01:40.567Z","avatar_url":"https://github.com/abtaaahi.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Don't Worry\n\nYour personal space for emotions, connections, and daily inspiration.\n\n\n## Table of Contents\n\n- [Introduction](#introduction)\n- [Screenshots](#screenshots)\n- [Video](#video)\n- [Features](#features)\n- [Technologies Used](#technologies-used)\n- [Tools](#tools)\n- [APIs](#apis)\n- [Installation](#installation)\n- [How to Use](#how-to-use)\n- [Server Setup](#server-setup)\n- [Contributing](#contributing)\n\n## Introduction\n\n\"Don't Worry\" is an innovative mobile application designed to help users track their emotions, connect with others, and explore content tailored to their mood. The app provides a safe space for expression and personal growth.\n\n## Screenshots\n\nHere are a few screenshots of the app in action:\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://res.cloudinary.com/dasqmi9fl/image/upload/v1730654818/1730215623870_mnusie.jpg\" alt=\"Dark Mode\" width=\"400\"/\u003e\n  \u003cimg src=\"https://res.cloudinary.com/dasqmi9fl/image/upload/v1730654825/1730215622551_jlkblp.jpg\" alt=\"Light Mode\" width=\"400\"/\u003e\n\u003c/p\u003e\n\n## Video\nWatch a demo of the app to see it in action:\n\n[![Demo Video](https://img.youtube.com/vi/XXAHZWyprVs/0.jpg)](https://www.youtube.com/watch?v=XXAHZWyprVs)\n\n## Features\n\n- **Splash Screen with Lottie Animation**: Engaging visual to welcome users.\n- **User Authentication**: Sign up using Google authentication.\n- **Personal Information Page**: Collects essential user details after sign-in.\n- **Daily Mood Check-In**: Users can select their mood from 5 options and tell about their mood each day.\n- **Personalized Feed**: A dynamic feed combining social posts, articles, videos, and music based on mood submissions.\n- **Content Sections**: Separate areas for movies, videos, music, and articles, all mood-based.\n- **Refresh Option**: Users can refresh the feed for the latest content.\n- **Media Interaction**: Watch videos, listen to music, read articles and view movie trailers, with suggestions for similar content.\n- **Social Space**: Users can post updates and interact with others, including seeing who is online using SocketIO Node.js server integrate with MongoDB.\n- **Connection Requests**: Send requests through email, maintaining privacy (sender cannot see recipient's email).\n- **Reactions on Posts**: Users can react to others' posts, with data saved in Firebase.\n- **Places Activity Page**: Suggests 10 activities with 15 places to visit nearby.\n- **Weather Updates**: Shows a 5-day every 3-hour weather forecast based on user location, with suggestions based on current weather.\n- **Quote API**: Displays a new quote on app launch or refresh.\n- **Profile Management**: Users can view their posts, feelings, and modify personal details.\n- **Voice Recording Feature**: Users can record their voice, analyze it, and see the sentiment using a Node.js server with Python sentiment analysis.\n- **Chatbot Interaction**: Talk to an AI bot, with no data saved after the session ends.\n- **Offline Access**: Users can view their homepage feed offline as it is saved in the room database.\n\n\n## Technologies Used\n\n- **Frontend**: Kotlin\n- **Backend**: Node.js, Express\n- **Databases**: Firebase, Room Database\n- **Sentiment Analysis**: Python\n- **Real-time Communication**: Socket.IO\n- **Email Handling**: Nodemailer\n\n## Tools:\n* Android Studio\n* VS Code\n* Render\n* Railway\n* Google Cloud Console\n* MongoDB Cluster\n* Postman\n* Kaggle / Colab\n* GitHub\n\n## APIs:\n- YouTube Search API (for videos and music)\n- Custom Search API (for articles)\n- TMDB API (for movies)\n- Open Weather Map API (for weather updates)\n- Ninja API (for quote)\n- Rev API (text to speech)\n\n## Installation\n\nClone the repository:\n\n```\ngit clone https://github.com/abtaaahi/Dont-Worry.git\n```\n\nInstall dependencies:\n\n```\nimplementation (libs.play.services.auth)\nimplementation (libs.glide)\nimplementation (libs.circleimageview)\nimplementation (libs.core)\nimplementation (libs.retrofit)\nimplementation (libs.converter.gson)\nimplementation (libs.logging.interceptor)\nimplementation (libs.exoplayer)\nimplementation(libs.firebase.database)\nimplementation(libs.play.services.location)\nimplementation(libs.firebase.storage)\nimplementation(libs.kotlinx.coroutines.android)\nimplementation(libs.androidx.lifecycle.viewmodel.ktx)\nimplementation (libs.androidx.fragment.ktx)\nimplementation (libs.socket.io.client)\nimplementation(libs.lottie)\nimplementation(libs.androidx.room.runtime)\nimplementation(libs.androidx.room.ktx)\nkapt(libs.androidx.room.compiler)\nimplementation(libs.androidx.swiperefreshlayout)\n```\n\nAdd your API Url in `BaseUrls.kt` :\n```\nobject BaseUrls {\nconst val BASE_URL_GOOGLE_CUSTOM_SEARCH = \"https://\"\nconst val BASE_URL_GOOGLE = \"https://\"\nconst val BASE_URL_MOVIE = \"https://\"\nconst val BASE_URL_WEATHER = \"https://\"\nconst val BASE_URL_CURRENT_WEATHER = \"https://\"\nconst val BASE_URL_QUOTES = \"https://\"\nconst val BASE_URL_REV = \"https://\"\nconst val BASE_URL_TEXT_BLOB = \"https://\"\nconst val BASE_URL_SOCIAL_SPACE = \"https://\"\n}\n```\n\nIn `gradle.properties` add your API Key:\n\n```\nGOOGLE_API_KEY=\nCUSTOM_SEARCH_ENGINE_ID=\nNEWS_API_KEY=\nTMDB_API_KEY=\nQUOTE_API_NINJA_KEY=\nOPEN_WEATHER_API_KEY=\nREVAI_ACCESS_TOKEN=\n```\n\nIn your `build.gradle.kts` :\n\n```\nandroid {\n    defaultConfig {\n        buildConfigField(\"String\", \"GOOGLE_API_KEY\", \"\\\"${project.properties[\"GOOGLE_API_KEY\"]}\\\"\")\n        buildConfigField(\"String\", \"CUSTOM_SEARCH_ENGINE_ID\", \"\\\"${project.properties[\"CUSTOM_SEARCH_ENGINE_ID\"]}\\\"\")\n        buildConfigField(\"String\", \"NEWS_API_KEY\", \"\\\"${project.properties[\"NEWS_API_KEY\"]}\\\"\")\n        buildConfigField(\"String\", \"TMDB_API_KEY\", \"\\\"${project.properties[\"TMDB_API_KEY\"]}\\\"\")\n        buildConfigField(\"String\", \"QUOTE_API_NINJA_KEY\", \"\\\"${project.properties[\"QUOTE_API_NINJA_KEY\"]}\\\"\")\n        buildConfigField(\"String\", \"OPEN_WEATHER_API_KEY\", \"\\\"${project.properties[\"OPEN_WEATHER_API_KEY\"]}\\\"\")\n        buildConfigField(\"String\", \"REVAI_ACCESS_TOKEN\", \"\\\"${project.properties[\"REVAI_ACCESS_TOKEN\"]}\\\"\")\n        buildConfigField(\"String\", \"GEMINI_CHATBOT_API\", \"\\\"${project.properties[\"GEMINI_CHATBOT_API\"]}\\\"\")\n    }\n    buildFeatures {\n        buildConfig = true\n    }\n}\n```\n\nBuild \u003e Make Project\n\nYou will see your API Key stored in `BuildConfig.java`\n\nMake sure this permissions are added in `AndroidManifest.xml` , otherwise app will not run as expected:\n\n```\n    \u003cuses-permission android:name=\"android.permission.INTERNET\" /\u003e\n    \u003cuses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\" /\u003e\n    \u003cuses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\" /\u003e\n    \u003cuses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\" /\u003e\n    \u003cuses-permission android:name=\"android.permission.RECORD_AUDIO\" /\u003e\n    \u003cuses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\" /\u003e\n    \u003cuses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\" /\u003e\n```\nFirebase SDK `.json` file \u0026 Google Services `.json` file must add in `app` directory.\n\n## How to Use\n\n- Launch the app on your device.\n- Sign up using your Google account.\n- Fill out your personal information.\n- Select your mood daily and explore personalized content.\n- Use the social space to connect with other users.\n- Check the weather and discover nearby activities.\n- Record your voice and analyze it for sentiment.\n- Chat with the AI bot for fun and interaction.\n\n## Server Setup\n\nInstall required packages:\n\n`npm install`\n\nAdd environment variables in `.env` :\n```\nMONGO_URI=mongodb+srv://:@.mongodb.net/?retryWrites=true\u0026w=majority\nGMAIL_USER=@gmail.com\nGMAIL_APP_PASSWORD=\n```\nAdd `MongoDB` String from Cluster with `Node.js` Setup.\n\nGet Gmail App Password after 2-step verification.\n\n**Sentiment Analysis** :\n\n`pip install`\n\nUse python's latest version for better optimization.\n\n## Contributing\nContributions are welcome! Please follow these steps:\n- Fork the repository.\n- Create a new branch (`git checkout -b feature/YourFeature`).\n- Make your changes and commit them (`git commit -m 'Add new feature'`).\n- Push to the branch (`git push origin feature/YourFeature`).\n- Open a pull request.\n\nYou can also add *issues* it will be great for me to develop my skills.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabtaaahi%2Fdont-worry","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fabtaaahi%2Fdont-worry","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabtaaahi%2Fdont-worry/lists"}