Files
tourrism_site/package.json
Andrey K. Choi b4e513e996 🚀 Korea Tourism Agency - Complete implementation
 Features:
- Modern tourism website with responsive design
- AdminJS admin panel with image editor integration
- PostgreSQL database with comprehensive schema
- Docker containerization
- Image upload and gallery management

🛠 Tech Stack:
- Backend: Node.js + Express.js
- Database: PostgreSQL 13+
- Frontend: HTML/CSS/JS with responsive design
- Admin: AdminJS with custom components
- Deployment: Docker + Docker Compose
- Image Processing: Sharp with optimization

📱 Admin Features:
- Routes/Tours management (city, mountain, fishing)
- Guides profiles with specializations
- Articles and blog system
- Image editor with upload/gallery/URL options
- User management and authentication
- Responsive admin interface

🎨 Design:
- Korean tourism focused branding
- Mobile-first responsive design
- Custom CSS with modern aesthetics
- Image optimization and gallery
- SEO-friendly structure

🔒 Security:
- Helmet.js security headers
- bcrypt password hashing
- Input validation and sanitization
- CORS protection
- Environment variables
2025-11-30 00:53:15 +09:00

57 lines
1.4 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"name": "korea-tourism-agency",
"version": "1.0.0",
"type": "module",
"description": "Туристическое агентство для внутренних поездок по Корее",
"main": "src/app.js",
"scripts": {
"start": "node src/app.js",
"dev": "nodemon src/app.js",
"db:migrate": "node database/migrate.js",
"db:seed": "node database/seed.js"
},
"keywords": [
"korea",
"tourism",
"travel",
"agency"
],
"author": "Korea Tourism Agency",
"license": "MIT",
"dependencies": {
"@adminjs/express": "^6.1.0",
"@adminjs/sequelize": "^4.1.1",
"@adminjs/upload": "^4.0.2",
"@babel/core": "^7.28.5",
"@babel/preset-react": "^7.28.5",
"adminjs": "^7.5.0",
"bcryptjs": "^2.4.3",
"bootstrap": "^5.3.2",
"compression": "^1.7.4",
"cors": "^2.8.5",
"dotenv": "^16.3.1",
"ejs": "^3.1.9",
"express": "^4.18.2",
"express-ejs-layouts": "^2.5.1",
"express-fileupload": "^1.4.3",
"express-rate-limit": "^7.1.5",
"express-session": "^1.17.3",
"helmet": "^7.1.0",
"jquery": "^3.7.1",
"method-override": "^3.0.0",
"moment": "^2.29.4",
"morgan": "^1.10.0",
"multer": "^1.4.5-lts.1",
"pg": "^8.11.3",
"pg-hstore": "^2.3.4",
"react": "^19.2.0",
"react-dom": "^19.2.0",
"sequelize": "^6.37.7",
"sequelize-cli": "^6.6.3",
"sharp": "^0.33.5"
},
"devDependencies": {
"nodemon": "^3.0.2"
}
}