A full-stack IoT web application for managing tourist bookings and packages. Built with Node.js (Express) for the backend and UI powered by 28Tech (PUG/CSS/JS).
This project demonstrates modern web development with features such as:
- Server-side rendering
- RESTful APIs
- JWT authentication
- Database integration with MongoDB
- Automatic email sending for password reset via OTP
- ⚙️ Backend with Node.js and Express.js
- 🔐 JWT-based Authentication using jsonwebtoken
- 🗔️ MongoDB Database integration
- 🔑 Password hashing and encryption using bcrypt
- 📄 Form validation:
- Client-side using Just-validate
- Server-side using Joi
- ✉️ Email sending with Nodemailer
| Layer | Technology |
|---|---|
| Backend | Node.js, Express.js |
| Frontend | Next.js (provided by 28Tech) |
| Database | MongoDB |
| Authentication | jsonwebtoken |
| Security | bcrypt, crypto-js |
| Validation | Just-validate, Joi |
| Nodemailer |
git clone https://github.com/trngnneeee/TouristBooking.git
cd TouristBookingyarn install-
Create
.envfile in/serverwith:DATABASE = "LINK_TO_DB" JWT_SECRET = "YOUR_KEY" EMAIL_USERNAME_NODEMAILER = ""YOUR_KEY" EMAIL_PASSWORD_NODEMAILER = "YOUR_KEY" EMAIL_SECURE = "BOOLEAN_VALUE" CLOUDINARY_SECRET_API = "YOUR_KEY" ZALOPAY_APPID = "YOUR_KEY" ZALOPAY_KEY1 = "YOUR_KEY" ZALOPAY_KEY2 = "YOUR_KEY" ZALOPAY_ENDPOINT = "YOUR_END_POINT" NGROK_URL = "YOUR_WEBSITE_DOMAIN" VNPAY_TMNCODE = "YOUR_KEY" VNPAY_SECRET_KEY = "YOUR_KEY" VNPAY_URL = "https://sandbox.vnpayment.vn/paymentv2/vpcpay.html";
yarn start- Local Website: http://localhost:3000
- Client: http://localhost:3000
- Admin: http://localhost:3000/admin/dashboard: Get started by creating an Admin account and waiting for being approved
For any queries or contributions, feel free to reach out:
- 📧 Email: dtn06052005@gmail.com
- 🐙 GitHub: https://github.com/trngnneeee
This project is licensed under the MIT License.
Happy exploring and managing your tourist bookings! Have a great journey using this platform 🚀🌟.