Birdseye is a tourism website. It is built using the popular MERN Stack technologies. This demo website is a full-stack website. It is built for the purpose of learning React
, Node.js
, MongoDB
, and others tools and development packages.
This project is deployed using the firebase hosting service. To visit the demo Click here or manually visit the URL https://birdseye-travel-planner.web.app.
Role | Password | |
---|---|---|
Admin | admin@birdseye.com | Admin1234# |
Manager | manager@birdseye.com | Manager1234# |
User | demo@birdseye.com | Demo1234# |
Note: The website may be slow because of the free hosting server.
- Responsive webpages
- Authentication and Authorization
- File hosting
- REST api
- Database management
- Sorting and search plans
- Add new plans (Admin only)
- Editing plan details (Admin only)
- Make bookings
- Booking management
- User role management
This website is a fully responsive application. Attempts have been made to implement all basic concepts/services.
This project uses a number of open-source projects/packages to work properly:
- Axios - Promise based HTTP client for the browser and node.js.
- Bootstrap - Bootstrap is a powerful, feature-packed frontend toolkit.
- Firebase - Firebase is an app development platform that helps to build apps and games.
- React - A JavaScript library for building user interfaces.
- React-bootstrap - The most popular front-end framework.
- React-hook-form - Performant, flexible and extensible forms with easy-to-use validation.
- React-router - React Router is a standard library for routing in React.
- Colors - get colors in your node.js console.
- CORS - Node.js CORS middleware.
- Dotenv - Loads environment variables from .env for nodejs projects.
- Express - Fast, unopinionated, minimalist web framework for Node.js.
- Firebase-admin - Firebase Admin Node.js SDK.
- Mongodb - MongoDB NodeJS Driver.
- Validator - A library of string validators and sanitizers.
Birdseye requires Node.js v10+ to run.
Install the dependencies and devDependencies and start.
# client
cd birdseye/client/
npm install
npm start
# server
cd birdseye/server/
npm install
For production environments...
npm start
# or
NODE_ENV=production node index.js
For local environments...
npm run start-local
# or
NODE_ENV=local node index.js
For development environments...
npm run start-dev
# or
NODE_ENV=dev nodemon index.js
Before starting, the servers must set up some environment variables on both the birdseye/client
and birdseye/server
.
Enter all variables in the client/.env.local
file.
Variables | Description |
---|---|
REACT_APP_FIREBASE_APIKEY | Firebase api key |
REACT_APP_FIREBASE_AUTHDOMAIN | Firebase auth domain |
REACT_APP_FIREBASE_PROJECTID | Firebase project ID |
REACT_APP_FIREBASE_STORAGEBUCKET | Firebase storage bucket |
REACT_APP_FIREBASE_MESSAGINGSENDERID | Firebase messaging sender ID |
REACT_APP_FIREBASE_APPID | Firebase APP ID |
REACT_APP_SERVER_BACKEND_API_URL | Server side URL of birdseye |
Enter all variables in the server/.env
file.
Variables | Description |
---|---|
PORT | Port number for local |
LOCAL_URI | MongoDB uri for local |
DEV_URI | MongoDB uri for development |
PRODUCTION_URI | MongoDB uri for production |
FIREBASE_SERVICE_ACCOUNT_INFO | Firebase service account information |
Thank you!