Skip to content

A full-stack web application for managing tours, bookings, and user interactions. Built with ReactJS, Node.js, ExpressJS, and PostgreSQL

License

Notifications You must be signed in to change notification settings

PhillMckinnon/tourism-project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tourism Company Web Application

React JavaScript Bootstrap Node.js ExpressJS PostgreSQL Sequelize

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.


Features

Frontend (ReactJS + Bootstrap)

  • 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.

Backend (Node.js + ExpressJS + PostgreSQL)

  • 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.

Getting Started

  1. Clone the repository.
    git clone https://github.com/PhillMckinnon/tourism-project
    cd tourism-project
  2. Install dependencies:
    cd backend && npm install
    cd -
    cd frontend && npm install
  3. Set up the PostgreSQL database full_database.sql and update db.js, .env.
  4. Run migrations:
    npx sequelize-cli db:migrate
  5. Start the frontend and backend servers:
    cd backend && npm start
    cd frontend && npm start

Note

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.

📫Contact

For any questions or feedback, feel free to reach out to:

Email: phillipmckinnonwork@proton.me
GitHub: @PhillMckinnon 

About

A full-stack web application for managing tours, bookings, and user interactions. Built with ReactJS, Node.js, ExpressJS, and PostgreSQL

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published