Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/aaroncferrer/nutri-app

A web app connecting patients and dietitians. Patients can create accounts, book appointments, and receive nutrition guidance. Dietitians manage schedules, conduct video consultations, and access patient records.
https://github.com/aaroncferrer/nutri-app

calendly-api google-oauth2 rails7 reactjs rspec ruby ruby-on-rails

Last synced: 3 days ago
JSON representation

A web app connecting patients and dietitians. Patients can create accounts, book appointments, and receive nutrition guidance. Dietitians manage schedules, conduct video consultations, and access patient records.

Awesome Lists containing this project

README

        

# The Nutri Tech

The Nutri Tech is a web application that provides nutrition and dietetic services. It allows patients to create accounts, book appointments, and receive personalized nutrition guidance from dietitians. Dietitians can manage their schedules, conduct video consultations, and access patient records. The app utilizes Google OAuth2.0 for authentication, the Calendly API for scheduling, and integrates with Google Meet for video consultations. This README provides information on the application, including its features and how to set up the backend and frontend.

## Technologies Used

























## Features

### Patient
- **Account Creation**: Patients can create accounts manually or via Google OAuth2.0.
- **Email Notification**: Patients receive an email to confirm their account creation.
- **Account Login**: Patients can log in to access the application.
- **Appointment Booking**: Patients can book appointments with dietitians based on available timeslots.
- **Confirmation Email**: Patients receive a confirmation email with appointment details and a Google Calendar invite upon successful booking.
- **Upcoming Appointments**: Patients can view their upcoming appointments, including date, time, and the dietitian's name.
- **Previous Appointments**: Patients can access a list of their previous appointments and view corresponding records.

### Dietitian
- **Professional Account Creation**: Dietitians can create professional accounts to offer nutrition/dietetic services.
- **Account Login**: Dietitians log in to access their appointment schedule and patient records.
- **Schedule Management**: Dietitians can manage their schedules using Calendly, ensuring effective time management.
- **Email Notifications**: Dietitians receive email notifications when a patient books an appointment.
- **Video Consultations**: Dietitians can conduct video consultations with patients using Google Meet.
- **Appointment Records**: Dietitians can view all assigned appointments and access records for each to provide personalized support.

### Additional Information
- **Authentication**: The application uses Google OAuth2.0 for user authentication. To implement this, you can refer to this [article](https://hackernoon.com/how-to-implement-social-auth-with-google-in-ruby-on-rails).

- **Scheduling**: The app integrates with the Calendly API for scheduling and manages appointments.

- **Server Uptime**: The application maintains server uptime using cron-jobs.org.

- **Deployment**: The backend is deployed on Render, and the frontend is deployed on Vercel.

### Testing
- Tools used for testing include Rspec, FactoryBot, and Faker.

## Getting Started

### Backend Setup
1. Clone the backend repository.
2. Navigate to the project directory: `cd nutrition-backend`
3. Install the required dependencies: `bundle install`
4. Create and set up the database:
```
rails db:create
rails db:migrate
```
5. Set up your environment variables for Google OAuth2.0 and Calendly: _(please refer to your actual env var)_
```
GOOGLE_CLIENT_ID=your-client-id
GOOGLE_CLIENT_SECRET=your-client-secret
CALENDLY_API_KEY=your-api-key
```
6. Start the Rails server: `rails server`

### Frontend Setup
1. Clone the frontend repository.
2. Navigate to the project directory: `cd nutrition-frontend`
3. Install the required dependencies: `npm install`
4. Create a .env file for environment variables.
5. Start the development server: `npm run dev`