Welcome to Wanderlust, a comprehensive travel booking application! This Django-based project was developed as part of my assignment for the Software Engineer Intern position I am applying to Travel Lykke. Iβve named the project Wanderlust to capture the spirit of adventure and exploration.
Thank you for exploring the application!
This project was created to showcase proficiency in Django, building functional web applications, and understanding travel booking systems. It was created using Django for the backend, Bootstrap for the frontend, and MySQL as the database.
- User Authentication: Register, log in, and manage user profiles.
- Travel Options: Browse and book various travel options (Flights, Trains, Buses).
- Booking Management: Make, view, and cancel bookings.
- Responsive Design: Enhanced with Bootstrap for a clean, modern look.
This application is hosted on AWS Lightsail at 15.207.196.96:8000. Unfortunately, I couldn't afford a proper domain name, so I used the free IP address given by AWS Lightsail. The free domain name options were not desirable, so I went let the IP address be.
- Python 3.x
- Django
- Bootstrap
- MySQL (or your preferred database)
-
Clone the Repository
git clone https://github.com/dog-broad/travel_booking.git cd travel_booking -
Create a Virtual Environment
python -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate`
-
Install Dependencies
pip install -r requirements.txt
-
Apply Migrations
python manage.py makemigrations python manage.py migrate
-
Create a Superuser
python manage.py createsuperuser
-
Run the Development Server
python manage.py runserver
- Home Page: http://localhost:8000/
- Admin Interface: http://localhost:8000/admin/
- Endpoint:
/register/ - Function: Users can create an account, which logs them in and redirects to the travel options page.
- Endpoint:
/login/ - Function: Users log in to access the travel options page. Invalid credentials show an error message.
- Endpoint:
/logout/ - Function: Logs out the user and redirects to the landing page.
- Endpoint:
/profile/ - Function: Users can view and update their profile information.
- Endpoint:
/travel-options/ - Function: Displays available travel options for users to browse and book.
- Endpoint:
/book-ticket/<travel_id>/ - Function: Users can book tickets for a selected travel option, with total price calculated based on seats.
- Endpoint:
/view-bookings/ - Function: Shows a list of the userβs bookings.
- Endpoint:
/cancel-booking/<booking_id>/ - Function: Users can cancel a specific booking, updating its status and increasing available seats.
- Function: Superusers manage travel options through the Django admin interface.
- Django: Web framework for building the application.
- Bootstrap: Front-end framework for responsive design.
- MySQL: Database for storing data (configurable).
- Python: Programming language used for development.
- Advanced Search: Implement advanced search for travel options.
- Payment Integration: Add payment gateway support for bookings.
- User Dashboard: Enhance user profile with booking history and preferences.
This project is licensed under the MIT License - see the LICENSE file for details.
Feel free to contribute by submitting issues or pull requests. Your feedback and improvements are welcome!