ananyag309 / UltimateHealth_gssoc

UltimateHealth is an innovative open source project that serves as an online library and article management application focused on health.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

UltimateHealth (HealthGuide)

Typing SVG


Small Note:

After 9th August, 2024 no contributions will be accepted for this repository under GSSOC. It is important to note that this is immutable and cannot be changed.

🌟 Stars 🍴 Forks 🐛 Issues 🔔 Open PRs 🔕 Close PRs Last Commit
Stars Forks Issues Open Pull Requests Close Pull Requests Close Pull Requests

⚡ Featured In:

Open Source Programs

Event Logo Event Name Event Description
GSSoC 24 GirlScript Summer of Code 2024 GirlScript Summer of Code is a three-month-long Open Source Program conducted every summer by GirlScript Foundation. It is an initiative to bring more beginners to Open-Source Software Development.

⚡ About Us: UltimateHealth is an innovative open-source project that aims to provide a comprehensive online library and article management application focused on health. The project is designed to cater to users looking for reliable and trustworthy information on various health-related topics.

High VoltageTech Stack

Java Node.js expressjs React.js


📌Contents:

Features 🔮

From the beginner's perspective, the project consists of three main modules: Article Section, Chat Section, and Podcasts. The Article Section includes:

  • Diseases-related information
  • General health-related guidance 📚
  • Survival experiences from critical diseases
  • Backend Development

Users can also listen to articles (audio features) if they prefer. The Chat Section features a guide bot that helps users solve health-related problems.:sparkles:

Features Left

  • MultiLanguage Feature
  • PodCast
  • Profile API Integration
  • Article API Integration
  • Search & Filter Feature
  • User Insights
  • Article Post via file upload

Project Requirements 📬

Install JDK:

To ensure that your project runs smoothly, make sure you have Java 17 installed on your system. You can follow these steps to set up Java 17:

  • Visit the Oracle website or the OpenJDK website to download the Java 17 JDK (Java Development Kit) for your operating system.
  • Follow the installation instructions provided for your specific operating system.

Installing JDK 17 on macOS:

  • Visit the Oracle JDK download page or the AdoptOpenJDK website.
  • Download the JDK 17 installer for macOS (e.g., .dmg or .pkg file).
  • Open the downloaded installer and follow the installation instructions.
  • After the installation is complete, you can verify the installation by opening a Terminal window and running the command java -version. It should display the installed JDK version.

Setting JAVA_HOME on macOS:

  • Open a Terminal window.

  • Determine the installation path of JDK 17. You can use the java_home command to find the path by running /usr/libexec/java_home -v 17.

  • Copy the JDK installation path.

  • Create or edit the .zshrc file in your user home directory by running nano ~/.zshrc in the Terminal.

  • Add the following line to the file, replacing <JDK_PATH> with the copied JDK installation path:

    export JAVA_HOME=<JDK_PATH>

  • Save the file and exit the text editor.

  • Close the Terminal window and open a new one to apply the changes.

  • To verify that JAVA_HOME is set correctly, run the command echo $JAVA_HOME in the Terminal. It should display the JDK installation path.

Installing JDK 17 on Windows:

  • Visit the Oracle JDK download page or the AdoptOpenJDK website.
  • Download the JDK 17 installer for Windows (e.g., .exe file).
  • Run the downloaded installer and follow the installation instructions.
  • After the installation is complete, you can verify the installation by opening a Command Prompt window and running the command java -version. It should display the installed JDK version.

Setting JAVA_HOME on Windows:

  • Right-click on the Windows Start button and select "System".
  • In the System window, click on "Advanced System Settings" on the left sidebar.
  • Click the "Environment Variables" button.
  • Under the "System Variables" section, click "New".
  • Enter JAVA_HOME as the Variable name.
  • Enter the path to the JDK 17 installation directory (e.g., C:\Program Files\Java\jdk-17) as the Variable value.
  • Click "OK" to save the variable.
  • Click "OK" again to close the Environment Variables window.
  • Close and reopen any Command Prompt windows for the changes to take effect.
  • To verify that JAVA_HOME is set correctly, run the command echo %JAVA_HOME% in a Command Prompt window. It should display the JDK installation path.

Setting ANDROID_HOME Environment Variable:💥

To set the ANDROID_HOME variable for both Windows and macOS, you can follow the instructions below:

Windows:

  • Open the System Properties window by right-clicking on the Computer icon and selecting "Properties".
  • Click on "Advanced system settings" on the left-hand side.
  • In the System Properties window, click on the "Environment Variables" button.
  • In the Environment Variables window, under the "System variables" section, click on the "New" button.
  • Enter ANDROID_HOME as the variable name.
  • Enter the path to the Android SDK directory as the variable value. (Default Path: C:\Users\User_Name\AppData\Local\Android\Sdk)
  • Click "OK" to save the changes.

macOS:

  • Open a terminal window.
  • Open the .bash_profile file in a text editor by running the command nano ~/.bash_profile.
  • Add the following line to the file:
  • export ANDROID_HOME=/path/to/android/sdk
  • Replace /path/to/android/sdk with the actual path to the Android SDK directory.
  • Press Control + O to save the file, then press Enter to confirm the file name, and finally press Control + X to exit the text editor.
  • Close the terminal window and reopen it for the changes to take effect.

Please note that the exact path to the Android SDK directory may vary depending on how you installed it. Make sure to replace /path/to/android/sdk with the correct path on your system.

Getting Started ⚡️


Follow these steps to get started with UltimateHealth:

  1. Clone the Repository:

    git clone https://github.com/SB2318/UltimateHealth.git
  2. Change to the Project Directory:

    cd UltimateHealth
  3. Checkout the Development Branch:

    git checkout develop

    If the 'develop' branch is not available in your forked repository, refer to the detailed instructions in CONTRIBUTING.md.

For Frontend: 🌐

  1. Install Dependencies:

    npm install --legacy-peer-deps
  2. Configure the Application:

    Update configuration files as needed, ensuring Ethereum wallet connection details are set.

  3. Run the Frontend Server:

    • For Android:

      npm run android
    • For iOS:

      npm run ios

For Backend: 🖥️

MongoDB Installation:

  1. Install MongoDB:

    • Download the MongoDB package for your OS from MongoDB's official website.
    • Follow the installation instructions for your platform.
  2. Set up MongoDB Database:

    • Start the MongoDB server with the mongod command.
    • Use mongo shell or a GUI client like MongoDB Compass to interact with your databases.
  3. Initialize the Backend Server:

Setting up the Backend Server:

  1. Navigate to Backend Directory:

    cd backend
  2. Create and Configure the .env File:

    Add the following variables:

    PORT=
    MONGODB_URL=""
    JWT_SECRET=""
  3. Install Dependencies:

    npm install -s
  4. Run the Backend Server:

    • For development:

      npm run dev
    • To run the server once:

      node server.js
  5. Backend API URL:

    http://localhost:{PORT}/api/

    Replace {PORT} with the appropriate port number.

Testing Frontend with Localhost Backend Server: 🧪

Guidelines for Frontend Developers:

  1. Start the Backend Server:

    Ensure the backend server is running on localhost. Start the server from the backend project directory (e.g., node server.js).

  2. Configure the Frontend Application:

    Set the API base URL in the frontend configuration to point to the local backend server.

  3. Use HTTP Clients:

    Test backend API endpoints using browser tools or dedicated HTTP clients like Postman or Insomnia.

  4. Handle CORS:

    Configure the backend server to allow cross-origin requests if the frontend runs on a different port/domain.

  5. Proxy Requests (Optional):

    Use built-in proxy features of frontend frameworks to forward API requests to the backend server.

  6. Use Environment Variables:

    Store the backend server URL in environment variables instead of hardcoding.

  7. Test Different Scenarios:

    Simulate various user flows, including error and edge cases, to ensure proper handling.

Access the Application:

Open your web browser and navigate to LOCAL_HOST_URL. Follow contribution guidelines if you'd like to contribute to the project.



✨Contribution Guidelines:

  • Checkout and make your changes for the develop branch only: When working on your contributions, switch to the develop branch in your local repository. This ensures that you are working on the latest version of the codebase.

  • Create pull requests only for the develop branch: When you are ready to submit your changes, create a pull request (PR) targeting the develop branch. This allows the maintainers to review and merge your code into the main development branch.

  • Maintain contribution guidelines: Each project may have its specific contribution guidelines. It's important to familiarize yourself with these guidelines before submitting your contributions. Adhering to these guidelines ensures consistency and helps maintain the quality of the codebase.

  • Format your commit message with the issue number: When making commits related to an issue, follow the format Fixes: #32 in your commit message. Replace 32 with the issue number you are addressing. This helps track and manage issues more efficiently.

  • Attach a Postman response screenshot for backend tasks: For tasks related to the backend, it is recommended to include a screenshot of the Postman response along with your pull request. This provides additional context and helps reviewers understand the changes made and their impact on the backend functionality.

  • Make your pull request descriptive and include examples: When creating a pull request, provide a clear and descriptive explanation of the changes you made. This helps reviewers understand the purpose and significance of your contribution. Additionally, including at least one example that demonstrates the intended usage or effect of your changes can be beneficial.

  • Rebase your commits and optimize file changes: When submitting your pull request, consider rebasing your commits into one commit and optimizing your file changes. This helps keep the commit history clean and makes it easier for reviewers to understand your changes.

Remember, following these guidelines will help ensure a smooth and efficient contribution process. Happy coding!


⚡Our Vision:

We are committed to delivering reliable health information and comprehensive resources that empower individuals to take charge of their well-being. Our mission is to foster a healthier society by providing trustworthy, accessible, and engaging content, enabling users to make informed decisions and lead healthier lives.

✍️ Feedback and Support:

If you encounter any issues or have any feedback or suggestions, please open an issue in the Issues section of this repository. We appreciate your feedback and will respond as soon as possible.

Code of Conduct:

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.


License:

License
This project is licensed under the MIT License.


Contact Us:

Email

https://www.linkedin.com/in/susmita-n-m-bhattacharya


Our Contributors ❤️


Support

Don't forget to leave a star for this project!

Go to Top

About

UltimateHealth is an innovative open source project that serves as an online library and article management application focused on health.

License:MIT License


Languages

Language:TypeScript 25.0%Language:JavaScript 19.4%Language:Kotlin 19.3%Language:Objective-C 18.2%Language:Ruby 11.8%Language:Objective-C++ 6.4%