A full-stack web application for managing tours, bookings, and user interactions. Built with ReactJS, Node.js, ExpressJS, and PostgreSQL, this project focuses on functionality rather than security, as it was developed for a practical academy project.
- User Authentication: Simple login and registration system.
- Admin Dashboard: Admins can manage clients, bookings, countries, and tours.
- Client Page: Users can book available tours.
- Home Page: Redirects to the login page if the user is not logged in.
- REST API: Interact with the backend using tools like Postman.
- Admin Check: Users are verified as admins before accessing the dashboard.
- Database: Managed with Sequelize ORM for tours, bookings, and users.
- Clone the repository.
git clone https://github.com/PhillMckinnon/tourism-project cd tourism-project
- Install dependencies:
cd backend && npm install cd - cd frontend && npm install
- Set up the PostgreSQL database
full_database.sql
and updatedb.js
,.env
. - Run migrations:
npx sequelize-cli db:migrate
- Start the frontend and backend servers:
cd backend && npm start cd frontend && npm start
This project does not implement token-based security. Admins are verified by checking their role, and users are redirected to the login page if not authenticated. The backend can be interacted with directly via tools like Postman.
For any questions or feedback, feel free to reach out to:
Email: phillipmckinnonwork@proton.me
GitHub: @PhillMckinnon