NextJS/Firebase Developer for Booking Site

Job ID: 38006722

Budget: £250 – £750 GBP

I'm looking for NextJS & Firebase experts to build a dynamic website with appointment booking functionality for a small, local business.

Key Responsibilities:

- Develop a medium-sized website using NextJS, Firebase, Twilio, Google Calendar, Git, and PayPal
- Use modern frontend design patterns and maintain high levels of cybersecurity

Ideal Skills:

- Strong experience in NextJS, Git, and Firebase
- Proven track record with booking systems
- Proficiency with email sending, such as Twilio
- Familiarity with Google Calendar and PayPal APIs

Project Brief:

Build a responsive and accessible website with a modern yet familiar aesthetic for a rifle range in NextJS which has 3 pages:
1. Home page
2. Contact page
3. Booking page

The rifle range has 7 lanes, where users can book 1 lane at £20 per hour. Users can also hire a rifle for £5 and buy 100 pellets for £3.50.

The colour scheme should use beige and dark green on a light background. The font should be Helvetica. The logo should be modelled after a simple rifle scope.

It should use GitHub for version control and be deployable to Firebase for hosting. It should use Firestore if a database is required for anything. Preferably, it should be accessible, responsive, and use SEO. Analytics are not wanted and the website should be GDPR compliant.

The home page should contain a Services section, Location section, and About section. Any content (such as titles) or external variables (such as API keys and email addressees) should be modifiable easily from a markdown (.md) file or text (.txt) file, rather than directly in the code.

The booking page should use a wizard to walk users through the booking process one step at a time. Users do not login, so always checkout as a guest. Firstly, users select a future date from a calendar. Secondly, users see the times each of the 7 lanes are available on the chosen date and select a lane at a given time for a given duration (measured in hours) but only for lanes that are still available. A lane is available to be booked if it is not in anybody else’s basket currently and nobody else has booked the same lane at that point in time. Users can put lanes in their basket for up to 30 minutes, at which point it expires and the basket empties. Users can remove anything in their basket that is not yet purchased. Thirdly, users must choose to either rent a rifle for £20 per hour or bring their own rifle for free. Fourthly, they must acknowledge and accept the privacy policy, terms and conditions, and the safety agreement. Fifthly, users should enter their full name, phone number, and email address, and be able to purchase the lanes (and any rented rifles) with Apple Pay, Google Pay, or bank card to pay for the items from the booking system directly. Users should never be redirected to a separate website to process payments. This should process the user’s payment with PayPal and take out the full amount owed as soon as possible. Sixthly, users receive a virtual receipt to confirm the booking and what it includes via email. They should also be able to add it to their calendar in the email receipt. Finally, this booking must be added to the rifle range’s Google Calendar at the time and date chosen, where the title details their name and duration, and the description details their phone number, email address, and if they are bringing their own rifle or renting a rifle.

The contact page should have a form to email the business.

Please provide your relevant experience when applying.
Related categories: Website Design CSS PayPal API GitHub Next.js