Skip to content

Code-Institute-Submissions/NeoEats-1

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

84 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

NeoEats

NeoEats Restaurant Website

NeoEats is a modern, fully responsive restaurant website built with Django. It features a custom CMS, an image gallery powered by Cloudinary, and an online booking system. The project is deployed using Heroku.

The platform allows restaurant staff to manage menu items, gallery images, β€œAbout” content, and booking information through Django Admin.

The site is optimised for desktop, tablet, and mobile devices.


Live Site

πŸ”— https://neoeats-62e4965fe040.herokuapp.com/


Responsive Design

Responsiveness


Pages & Functionality

Home Page

  • Hero banner
  • Introduction text
  • Navigation links

About Page

About NeoEats
Working With Our Farmers

  • Editable title and content
  • Managed through Django Admin

Gallery

Gallery

  • Cloudinary-powered image hosting
  • CDN delivery for performance

Menu

Responsive Menu

  • Dynamically generated from database
  • Categorised dishes
  • Admin-managed

Booking

Book a Table

  • Secure booking form
  • User authentication
  • Newsletter signup

Features

Core Features

  • Fully responsive layout
  • Custom Django CMS
  • Cloudinary media storage
  • Booking system
  • Newsletter signup
  • Secure authentication
  • Accessible navigation

Admin Features

  • Image management
  • Menu management
  • Content editing
  • Booking administration
  • Clean admin interface

Technical Features

  • Django framework
  • PostgreSQL database
  • Whitenoise for static files
  • Cloudinary for media
  • Heroku deployment

Future Enhancements

  • Automated booking confirmation emails
  • Advanced menu filtering
  • Customer reviews
  • Image alt-text support
  • Analytics dashboard

Testing

Automated Testing

Each Django app follows a consistent testing structure:

β”œβ”€β”€ __init__.py
β”œβ”€β”€ test_models.py
β”œβ”€β”€ test_views.py
β”œβ”€β”€ test_urls.py
β”œβ”€β”€ test_templates.py
β”œβ”€β”€ test_admin.py
β”œβ”€β”€ test_apps.py
└── test_forms.py   (Booking app only)

Test Coverage

Core App

  • View rendering
  • URL resolution
  • Template content
  • App configuration

Menu App

  • Model validation
  • Category grouping
  • View context
  • URL mapping
  • Admin registration

About App

  • Models
  • Views
  • URLs
  • Templates
  • Admin setup

Booking App

  • Models
  • Form validation
  • Booking logic
  • Newsletter logic
  • View behaviour
  • URL resolution

Running Tests

Test suite result: 45 tests across about, booking, core, and menu apps. All passing.

Manual Testing

  • Cross-browser testing (Chrome, Edge, Safari)
  • Mobile responsiveness
  • Form validation
  • Navigation flow
  • Media uploads
  • Production static/media handling

Resolved Issues

  • Heroku staticfiles 500 error
  • Cloudinary URL misconfiguration
  • Static directory conflicts
  • Accidental virtual environment commits
  • Deployment environment inconsistencies

During development, multiple bugs and validation issues were resolved using official documentation, browser developer tools, and online developer communities. This includes fixing HTML/CSS validation errors, form rendering issues, and responsive layout problems.

All known critical issues have been resolved.


Known Issues

No known unresolved bugs at this time.


Validation and formatting

  • Python: PEP8 compliance
  • HTML: W3C validation
  • CSS: W3C validation
  • Python formatting: Black
  • Linting: Flake8

No major validation errors detected.


Deployment

  • Database migrations run automatically via Procfile release phase.
  • Prevents missing table errors on Heroku.

Heroku Deployment Steps

  1. Create a new Heroku app
  2. Add Python buildpack
  3. Configure environment variables:
    • DATABASE_URL
    • CLOUDINARY_URL
    • SECRET_KEY
  4. Ensure .venv is excluded via .gitignore
  5. Push to Heroku:
  6. Run migrations and collectstatic

Technologies Used

  • Python
  • Django
  • PostgreSQL
  • HTML5
  • CSS3
  • Bootstrap
  • Cloudinary
  • Heroku

Project Goals

The main goal of this project was to develop a fully functional restaurant website with dynamic content management, secure user authentication, and a complete booking system, while following modern web standards and best practices.


References

Authentication & Permissions

Forms & Views

Models

Testing


Credits and Acknowledgements

ChatGPT

  • Docstring documentation
  • Debugging and assistance
  • Swedish translations and explinations
  • Structuring and folder build
  • Test strategy guidance

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 62.6%
  • HTML 22.5%
  • CSS 14.3%
  • Other 0.6%