This app is a work-in-progress (Dated: 05/08/2022).
A scheduling web app to make hanging out with family and friends in different timezones easier. Coordinating online hangouts with friends in different timezones can be difficult - Long Distance Friends make it better!
- Keep track of what timezones and time differences everyone in your friend group are in.
- Generates a link for all your friends to tell us when they are free to hangout.
- See what times your friends are free to hangout at a glance.
- Answer to your friend's invite to hangout by inputting your availability - and LDF will sort out the rest!
- Once everyone has put in their availability, if there is a working timeslot for all friends in the group, LDF will send out a Zoom meeting link to everyone's email.
- Back-end: Node.js, Express
- Front-end: React, TailwindCSS
- Testing: Jest, Postman
- Database: MongoDB, Mongoose
- Other: Luxon (datetime and timezone management), nodemailer (email integration)
- Google Maps API - for location and timezone handling
- Zoom API - for meeting invites
/src
├── components # Components
│ ├── common # Fields, buttons & other common components
│ ├── home # /home interface components
│ ├── rsvp # /rsvp interface components
│ ├── views # Other pages
├── services # API interactions
├── static # Images
├── utils # Tools and utilities
└── README.md
├── controllers # Routers & Tests
├── models # Schema definitions
├── services # External API services
├── utils # Tools and utilities
└── README.md
The schemas have post-
middleware which is triggered when delete
is called on the document. All other references to this object in relevant documents are automatically deleted.
Input any location and the timezone (and offset, incl. daylight saving) is worked out for you.
Each hangout has a UUID that makes the RSVP invitation easy to send.
Long Distance Friends works with the following services:
- MongoDB
- Gmail
- Zoom
Configure these variables in your environment to deploy.
To start, npm run start
in the client and server folders.
To run in development mode, npm run dev
.
To test, npm run test
.