Git Product home page Git Product logo

ciaran-io / himawari-sushi Goto Github PK

View Code? Open in Web Editor NEW
1.0 3.0 1.0 97.23 MB

Himawari Sushi is a Django application that features sushi recipes. It uses Django, Vite.js, and Tailwind CSS for a visually appealing interface. Our platform provides food delivery and a community for exploring Japanese cuisine. With Cloudinary and Heroku, we ensure a seamless user experience.

Home Page: https://sushi.up.railway.app

Python 59.07% JavaScript 0.75% CSS 2.90% HTML 32.41% TypeScript 4.84% Procfile 0.01%
code-institute django javascript python3 tailwindcss typescript vite

himawari-sushi's Introduction

Himawari sushi screenshot A Synthesis of Tradition and Futuristic Tech, Wrapped in a Full-Stack Django App.

Immerse yourself in the true essence of Japanese cuisine, wonder at the meticulous artistry of sushi-making, and embark on a gastronomic journey—all within your reach with just a click. Welcome to Himawari Sushi, where the past and the future of culinary Japan melt into a present online dining experience like never before!

Crafted to perfection using innovative tech-stack blending Django with Vite.js, complemented by a crisp and responsive UI with Tailwind CSS, our app serves you a diverse array of mouth-watering sushi recipes from the land of the rising sun—right on your screen. Now, enjoy entrancing food landscapes, claim our app-only exclusive offers and take your love for sushi to remarkable heights. All these goodies hosted in the cloud using AWS for static deployment and Heroku for app hosting, providing a seamless and enjoyable user experience.

Searching for sublime and authentic Japanese flavors? Lay your chopsticks to rest at Himawari Sushi! Operating from Monday to Saturday, 13:00pm - 10:00pm, we math your convenience with our culinary prowess. With our user-centric app, make reservations on-the-fly and ensure your spot at the table for an unforgettable sushi fête in no time.

Brace yourself for a unique union of time-honored Japanese culinary traditions with a dash of contemporary flair, where sushi is more than just a dish—it's an experience. Get mesmerized by our popular dish lineup and be sure to sign up for our newsletter for a discount on your next digital dine-out. We invite you to embark on a journey through Japan's exquisite culinary landscape, right here at Himawari Sushi. Happy dining! 🥢

screenshot

Navigate to the READMEs.

Readme files are split into multiple files to make them easier to read and maintain.

Target audience

The target audience for the fictional Japanese sushi restaurant would be individuals who are interested in Japanese culture and cuisine. This would include people who are looking for a unique and flavorful dining experience, as well as those who have an interest in exploring the rich and diverse world of Japanese cuisine. The restaurant would also appeal to food enthusiasts and adventurous eaters who are looking for new and exciting flavors. Additionally, the restaurant would be a great choice for individuals who are health-conscious, as Japanese cuisine is often known for its fresh ingredients and balanced flavors. Overall, the target audience would be anyone who is looking for an authentic and high-quality dining experience that offers traditional Japanese dishes.

UX brief

By implementing these UX best practices, the website provides a seamless and enjoyable experience for customers, making it easy for them to view the menu, make bookings, and contact the restaurant.

  • Load time: Optimize the website’s load time to ensure a fast and seamless user experience.

  • Mobile Responsiveness: The website is optimized for mobile devices, making it easy to navigate on a small screen, with large buttons and clear text.

  • Accessibility: Ensure that the website is accessible to users with disabilities by following accessibility guidelines such as WCAG 2.1.

  • Consistency: Maintain a consistent design and layout throughout the website to help users easily understand and navigate the content.

  • Feedback: Provide clear feedback to users when they interact with the website, such as showing loading indicators or success messages.

  • Error handling: Handle errors gracefully and provide helpful error messages to users when something goes wrong.

  • Clarity: Ensure that the website’s content is clear and easy to understand, with concise and informative copy.

  • Call to action: Include clear and prominent calls to action throughout the website to encourage users to take specific actions, such as signing up for a newsletter or making a purchase.

  • Visual hierarchy: Use visual hierarchy to prioritize important content and guide users’ attention to the most important parts of the website.

Application interface
  • About Us Page: The website includes an About Us page, providing information about the restaurant and its team members. The About Us page is linked to from the navigation menu, and includes members of the restaurant’s team, as well as a brief history.

  • Clear Navigation: The website features a clear and intuitive navigation menu that is prominently displayed, allowing customers to easily find the information they need. The menu is easy to navigate, with clear categories and descriptions of each dish.

  • High-Quality Images: High-quality images of the dishes and the restaurant are used throughout the website to give customers a sense of what to expect. For example, images of the sushi rolls and other dishes are displayed on the menu page, and images of the restaurant’s interior and exterior are displayed on the homepage.

  • Online Booking: An easy-to-use online booking system is available on the website, allowing customers to reserve a table at the restaurant. The booking form is prominently displayed on the homepage, with clear instructions and an easy-to-use interface.

  • Contact Information: The website clearly displays the restaurant’s contact information, including the address, phone number, and email address. The contact information is displayed in the footer of every page on the website, making it easy for customers to get in touch with the restaurant.

  • FAQ Page: A Frequently Asked Questions (FAQ) page is available on the website, helping customers find answers to common questions about the restaurant. The FAQ page is linked to from the navigation menu, and includes a search bar to help customers find the information they need quickly.

  • Menu Page: The menu page is well-designed, making it easy for customers to browse the restaurant’s offerings. The menu is divided into sections, such as appetizers, sushi rolls, and desserts. Each dish includes a clear description and a high-quality image. Additionally, the menu page includes filters to help customers find dishes that meet their dietary preferences, such as vegetarian or gluten-free options.

  • Newsletter Subscription: The website includes a newsletter subscription form, allowing customers to sign up for the restaurant’s newsletter. The newsletter subscription form is prominently displayed on the homepage, with clear instructions and an easy-to-use interface.

  • Social Media Integration: The website includes links to the restaurant’s social media accounts, allowing customers to follow the restaurant on Facebook, Twitter, and Instagram. The social media links are prominently displayed on the homepage, making it easy for customers to find them.

📜 User Stories****

New Site Users

User Story As a new site user, I would like to... So that I can... GitHub Issue status
Account registration register an account make a booking issue
View restaurant menu view the a list of foods served I know what food is available issue
Contact customer support contact customer support get help with any issues or questions issue
FAQ page have access to a comprehensive FAQ section ind and answer to a question I may have issue

Returning Site Users

User Story As a returning site user, I would like to So that I can GitHub Issue status
Account login login to my account view my information & bookings issue
Manage booking details manage my bookings make changes or cancel my booking issue
Manage account details manage my bookings make changes to my personal information issue
View booking history view my booking history see my previous bookings issue
Newsletter subscription sign up to the newsletter I can receive offers issue
Booking pagination navigate through my bookings it will be easier to find my bookings issue
Allow guest bookings create a booking without registering an account it would be easier to make a booking issue

Site Admin

User Story As a site admin, I would like to So that I can GitHub Issue status
Manage bookings manage customer bookings add, edit or remove customer bookings issue
Manage customers manage customer details add, edit or remove customers issue
Email customer with booking creation / changes details I can notify my customers in relation to their booking the customer receives updates on their booking issue

🧰 Tools & Technologies Used

Code Validation

Database

  • SQLite used as the database for the site during development.
  • PostgreSQL used as the database for the site.

Development Tools

  • Git used for version control.
  • Chrome DevTools used for testing and debugging.
  • DrawSQL used for creating the database schema.
  • Figma used for creating high-fidelity mockups.
  • Polypane used for testing responsiveness.
  • PyCharm used as the IDE for development.

Frameworks & Libraries

  • Django used as the Python framework for the site.
  • Tailwind CSS used as the CSS framework for the site.

Hosting

  • Cloudinary used for online static file storage.
  • ElephantSQL used to host the PostgresSQL database.
  • Heroku used to host the deployed site.

Languages

  • Python used as the back-end programming language.
  • JavaScript used for user interaction on the site.
  • TypeScript used to add types to JavaScript.
  • HTML used for the main site content.
  • CSS used for the main site design and layout.

Testing

Version Control & Code Repository

  • Git used for version control. (git add, git commit, git push)
  • GitHub used for secure online code storage.

Database Design

The database schema was created using DrawSQL

screenshot

Database Models

  • Table: Booking
PK id (unique) Type Notes
FK customer ForeignKey FK to Customer model
booking_id PrimaryKey uuid, editable false
booking_confirmed Boolean
booking_date DateField
booking_time DateTimeField
created_on DateTimeField
message TextField max_len=500, blank=True
placements PositiveSmallIntField default=1
  • Table: Customer
PK id (unique) Type Notes
FK customer PrimaryKey PK to User model
phone_number CharField max_len=20, blank=true

Agile Development Process

GitHub Projects

GitHub Projects served as an Agile tool for this project. Through it, user stories, issues, and milestone tasks were planned, then tracked on a weekly basis using the basic Kanban board.

screenshot

GitHub Issues

GitHub Issues served as an another Agile tool. There, I used my own User Story Template to manage user stories.

It also helped with milestone iterations on a weekly basis.

MoSCoW Prioritization

I've decomposed my Epics into stories prior to prioritizing and implementing them. Using this approach, I was able to apply the MoSCow prioritization and labels to my user stories within the Issues tab.

  • Must Have: guaranteed to be delivered (max 60% of stories)
  • Should Have: adds significant value, but not vital (the rest ~20% of stories)
  • Could Have: has small impact if left out (20% of stories)
  • Won't Have: not a priority for this iteration

💌 Credits

Techsini mockup used for the README.md mockup.

Content

  • Yosushi for food descriptions used in the home page.

Media

  • Unsplash used for team members in the about page.
  • Yosushi for food images used in the home page.
  • Icons for icons used in the site.

Acknowledgements

  • Tim Nelson I would like to thank my Code Institute mentor, for his support throughout the development of this project.
  • MrBin99 To enable Vite usage with the Django framework.

🔝 Back to Top

himawari-sushi's People

Contributors

ciaran-io avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

himawari-sushi's Issues

USER STORY: Newsletter subscription

As a Site User I can sign up to the newsletter so that I can receive offers through email

Todo


  • Enable sign up users to signup to newsletter
    • Add signup form
    • Add signup confirmation page
    • Add user to subscription service
    • Send user confirmation email of signup

USER STORY: Manage account details

As a Site user I can make changes to my account information so that I can change my personal details

Todo


  • Create a page for user to view/edit their personal information
    • Username
    • First name
    • Last name
    • Email address
    • phone number

USER STORY: Manage customers

As a Admin I can create a customer & edit customer details so that I can manage my customers

Todo


  • Enable Admin ability to create & update customers from admin panel.

USER STORY: Account registration

As a Site User I can register an account so that I can make a booking

Todo


  • Create a account registration page the user can navigate to and register.
  • Create a user creation form to collect user details.
    • User name (required)
    • Email (required)
    • Password (required)

USER STORY: Account login

As a Site user I can login so that view my booking information & personal information

Todo


  • Create a login page
  • Create a login form

USER STORY: Manage bookings

As a Admin I can create / edit bookings details so that I can manage customer bookings

Todo


  • Enable Admin ability to create & update user bookings from admin panel.

USER STORY: Contact customer support

As a Site User I can contact the site owner so that I can get help with any issues or questions

Todo


  • Create a contact page the user can navigate to.

  • Create a contact form the for user details.

    • Full name (required)
    • Email address (required)
    • Phone number (optional)
    • Message (required)
  • Create a contact success page to convey form has sent.

  • Setup email service to receive contact form message & send confirmation reply to customer.

USER STORY: Manage booking details

As a Site user I can make changes to my bookings so that I can change or cancel my booking

Todo


  • Add a bookings link where user can view booking in user dashboard.
    • Show bookings with following booking details.
      • Booking reference
      • Booking confirmed status
      • Booking date
      • Booking time
      • Number of people
      • Special request (massage)
  • Add edit booking link that will enable editing the booking
  • Add delete booking button that will enable deletion of booking

USER STORY: FAQ page

As a Site user I can have access to a comprehensive FAQ section so that I can find and answer to a question I may have

Todo


  • Create a reservation FAQ page.
  • Add common questions users may have.
  • Add navigation link to contact page.

USER STORY: View booking history

As a User I can View my previous bookings so that validate the information is correct

Todo

  • Add bookings overview to user dashboard that's displays
    • date
    • time
    • confirmed status
    • view booking link

USER STORY: View restaurant menu

As a Site User I can view the a list of foods served So that I know what food is available

Todo


  • Create a menu page that a user can navigate to.
  • Provide a list of all foods offered.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.