House of Damascus is a web application designed for a restaurant, offering users access to information about the restaurant, its menu, location, and an integrated booking system. Users can register, log in, make reservations, and review their booking history and edit them.
Explore the live demo: House of Damascus Demo
The navigation bar adapts to the current site section, providing easy access to different pages. It remains fixed at the top of the screen for convenient navigation.
A footer which displays copyrights for the website.
The home page welcomes users with restaurant opening times and a quick link to the booking area. Elements on the page adjust based on the device screen size.
A static page showcases the restaurant’s food and prices. The layout is responsive, switching from two to one-column design on smaller screens.
An admin area is accessible only by administrators, providing a link to view all booking entries in the database.
User authentication is managed through sign-up, sign-in, and sign-out forms. The forms include necessary validation and links for a seamless user experience.
The booking form, displayed upon signing in, allows users to select the date, time, and group size for a reservation. It includes restrictions on available days, times, and group sizes.
After a successful booking, users can view their specific booking list. The list displays booking status and provides buttons for updating or deleting entries.
A button allows users to update details of a pending or confirmed booking. The form allows users to confirm or return without changes.
A button enables users to delete a booking, displaying details and a confirmation prompt. Users can confirm and delete or return without deletion.
An admin area includes a list of all bookings, with a dropdown option to set booking status as confirmed or canceled.
Custom error page 404 provide links back to valid areas of the site, enhancing user experience in case of errors.
At House of Damascus, simplicity and clarity are prioritized. The design philosophy revolves around creating intuitive and user-friendly experiences that prioritize ease of use and accessibility. The design is clean, minimalist, and aesthetically pleasing to ensure that visitors can navigate the website effortlessly.
The House of Damascus website employs a simple color palette consisting of white, gray, and black. These neutral colors were chosen for their versatility, allowing content and visuals to stand out without overwhelming the user. The use of white promotes a sense of cleanliness and spaciousness, while gray and black add depth and contrast to the overall design.
For typography, the Arial font family was selected for its readability and familiarity. Arial offers a clean and modern look that complements the minimalist design aesthetic. Its simplicity ensures that content remains easy to read across different devices and screen sizes, enhancing the user experience.
The design process follows a systematic approach aimed at delivering a seamless and cohesive website experience. Here’s an overview of the design process:
Research: Thorough research was conducted to understand the target audience, their preferences, and their expectations from a restaurant website with a booking system like House of Damascus.
Conceptualization: Based on research findings, various design ideas were brainstormed and conceptualized to align with the brand identity and user needs.
Prototyping: Wireframing and prototyping tools were used to create mockups visualizing the layout, structure, and functionality of the House of Damascus website.
Feedback and Iteration: Feedback was gathered from random users, incorporating suggestions and making iterative improvements to the design.
Finalization: After multiple rounds of refinement, the design was finalized, ensuring that it met objectives and satisfied the needs of the target audience.
By adhering to these principles and processes, House of Damascus has crafted a website that delivers a seamless and enjoyable user experience, reflecting the commitment to simplicity, clarity, and user-centric design.
The User
model is provided by Django’s authentication system and represents registered users of the application.
Fields:
username
: CharField, representing the unique username of the user.email
: EmailField, representing the email address of the user.password
: CharField, representing the hashed password of the user.Relationships:
User
can have multiple Booking
objects associated with them.The Booking
model represents a reservation made by a user for a specific date and time.
Fields:
guest
: ForeignKey to the User model, representing the user who made the booking.date
: DateField, representing the date of the booking.time
: CharField with choices, representing the time slot for the booking.group
: PositiveIntegerField, representing the number of guests in the booking group.status
: CharField with choices, representing the status of the booking (Pending, Confirmed, Cancelled).is_cancelled
: BooleanField, indicating whether the booking has been cancelled.created_on
: DateTimeField, representing the timestamp when the booking was created.Relationship:
Booking
is associated with a single User
who made the reservation.Methods:
__str__
: Returns a string representation of the booking, including the guest’s username, date, and time.Meta:
ordering
: Specifies the default ordering of Booking objects by their creation timestamp.The database schema for the House of Damascus project is based on the following models:
Field | Type | Description |
---|---|---|
id | IntegerField | Primary key |
username | CharField | Unique username of the user |
EmailField | Email address of the user | |
password | CharField | Hashed password of the user |
Field | Type | Description |
---|---|---|
id | IntegerField | Primary key |
guest_id | ForeignKey | Foreign key referencing the User model |
date | DateField | Date of the booking |
time | CharField | Time slot for the booking |
group | PositiveIntegerField | Number of guests in the booking group |
status | CharField | Status of the booking (Pending, Confirmed, Cancelled) |
is_cancelled | BooleanField | Indicates whether the booking has been cancelled |
created_on | DateTimeField | Timestamp when the booking was created |
The following features are identified as long-term goals to enhance user experience:
Automated testing was conducted to ensure the functionality and integrity of the project. The testing process included the following:
The project was tested using the W3C Markup Validation Service and W3C CSS Validation Service to ensure that the code meets industry standards.
Google Chrome sometimes shows that the website is unsafe, a request to Google was sent to fix this issue.
This project was deployed to Heroku using these steps:
git init
).heroku login
) and create a new Heroku app (heroku create
).heroku addons:create heroku-postgresql
).git push heroku master
).heroku run python manage.py migrate
).git push heroku master
).The content for this website was generated using the following tools:
The combination of these tools contributed to creating engaging and error-free content for the House of Damascus Restaurant website.
Favicon: ![Favicon] Image Credit
Background Image: ![Background Image]Image Credit
Menu Images: