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.
π https://neoeats-62e4965fe040.herokuapp.com/
- Hero banner
- Introduction text
- Navigation links
- Editable title and content
- Managed through Django Admin
- Cloudinary-powered image hosting
- CDN delivery for performance
- Dynamically generated from database
- Categorised dishes
- Admin-managed
- Secure booking form
- User authentication
- Newsletter signup
- Fully responsive layout
- Custom Django CMS
- Cloudinary media storage
- Booking system
- Newsletter signup
- Secure authentication
- Accessible navigation
- Image management
- Menu management
- Content editing
- Booking administration
- Clean admin interface
- Django framework
- PostgreSQL database
- Whitenoise for static files
- Cloudinary for media
- Heroku deployment
- Automated booking confirmation emails
- Advanced menu filtering
- Customer reviews
- Image alt-text support
- Analytics dashboard
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)
- View rendering
- URL resolution
- Template content
- App configuration
- Model validation
- Category grouping
- View context
- URL mapping
- Admin registration
- Models
- Views
- URLs
- Templates
- Admin setup
- Models
- Form validation
- Booking logic
- Newsletter logic
- View behaviour
- URL resolution
Test suite result: 45 tests across about, booking, core, and menu apps. All passing.
- Cross-browser testing (Chrome, Edge, Safari)
- Mobile responsiveness
- Form validation
- Navigation flow
- Media uploads
- Production static/media handling
- 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.
No known unresolved bugs at this time.
- Python: PEP8 compliance
- HTML: W3C validation
- CSS: W3C validation
- Python formatting: Black
- Linting: Flake8
No major validation errors detected.
- Database migrations run automatically via Procfile release phase.
- Prevents missing table errors on Heroku.
- Create a new Heroku app
- Add Python buildpack
- Configure environment variables:
- DATABASE_URL
- CLOUDINARY_URL
- SECRET_KEY
- Ensure .venv is excluded via .gitignore
- Push to Heroku:
- Run migrations and collectstatic
- Python
- Django
- PostgreSQL
- HTML5
- CSS3
- Bootstrap
- Cloudinary
- Heroku
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.
- https://docs.djangoproject.com/en/5.2/topics/auth/
- https://developer.mozilla.org/en-US/docs/Learn_web_development/Extensions/Server-side/Django/Authentication
- https://docs.djangoproject.com/en/5.2/topics/forms/
- https://docs.djangoproject.com/en/5.2/topics/http/shortcuts/#get-object-or-404
- https://docs.djangoproject.com/en/5.2/topics/db/models/
- https://www.digitalocean.com/community/tutorials/how-to-create-django-models
- https://docs.djangoproject.com/en/5.2/topics/testing/overview/
- https://realpython.com/pytest-python-testing/
- Cloudinary (image hosting)
- Heroku (deployment)
- Django Documentation
- Bootstrap
- ami.responsive
- Mentor support
- LMA Content
- https://unsplash.com/ (Images)
- https://restaurant--booking-465b6b7fd829.herokuapp.com/
- https://github.com/DiarmuidHenry/Restaurant-Booking
- https://www.youtube.com/watch?v=DIFaOkxy6TE
- Docstring documentation
- Debugging and assistance
- Swedish translations and explinations
- Structuring and folder build
- Test strategy guidance





