WallpaperMachine
The wallpapers you love. A new home on your Mac.
Simplify your travel planning with our comprehensive visa processing platform. Check eligibility, apply online, and get your visa approved faster.
LifestyleTypeScript · CSSGitHub @HazemKhaledLatest connection check failedOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗A multilingual travel visa processing application built with modern web technologies. The platform helps users travel with minimal visa requirements through a centralized visa processing platform featuring destination-based visa catalogs and comprehensive SEO optimization.
/[locale]/)# Clone the repository
git clone <repository-url>
cd gettravelvisa
# Install dependencies
pnpm install
# Set up environment
cp .env.example .env.local
# Edit .env.local with your Cloudflare credentials
pnpm dev
Open http://localhost:3000 to view the application.
This project uses Drizzle ORM with Cloudflare D1 (SQLite) for both local development and production.
# Complete setup: reset → migrate → seed
pnpm db:local:setup
# Database migrations
pnpm db:local:migrate # Apply migrations to local database
pnpm db:local:reset # Reset/clear local database
# Database seeding
pnpm db:local:seed # Populate with sample data
# Database exploration
pnpm db:local:studio # Open Drizzle Studio GUI
pnpm db:local:query "SQL" # Run custom SQL queries
# Generate migrations from schema changes
pnpm db:generate
# Apply migrations to production
pnpm db:migrate
# Open production database GUI
pnpm db:studio
# Seed production database
pnpm db:seed
Local Database:
pnpm db:local:studioProduction Database:
pnpm db:studioThe project uses a smart configuration in drizzle.config.ts:
// Automatically switches based on LOCAL_DB_PATH environment variable
LOCAL_DB_PATH ?
// Local: Uses SQLite file directly
{ dialect: "sqlite", dbCredentials: { url: LOCAL_DB_PATH } } :
// Production: Uses Cloudflare D1 HTTP API
{ dialect: "sqlite", driver: "d1-http", dbCredentials: { ... } }
Local Development:
.wrangler/state/v3/d1/@libsql/client for Drizzle StudioProduction:
.env.localThe application uses a comprehensive i18n database schema:
Core Tables:
countries - Destination and passport issuing countriescountries_i18n - Multilingual country names/descriptionsvisa_types - Different visa options per destinationvisa_types_i18n - Multilingual visa type informationvisa_eligibility - Visa requirements matrixvisa_eligibility_i18n - Multilingual eligibility notesKey Features:
deleted_at flagscreated_at, updated_at)/[locale]/)pnpm dev - Start development server with Turbopackpnpm build - Build for productionpnpm start - Start production serverpnpm lint - Run ESLintpnpm lint:fix - Fix ESLint issuespnpm format - Format with Prettierpnpm type-check - TypeScript compilation checkpnpm db:local:setup - Complete database setuppnpm db:local:migrate - Apply migrationspnpm db:local:seed - Seed with sample datapnpm db:local:studio - Open GUI (port 4984)pnpm db:local:query "SQL" - Run custom queriespnpm db:local:reset - Reset databasepnpm db:generate - Generate migrationspnpm db:migrate - Apply to productionpnpm db:studio - Open GUI (port 4983)pnpm db:seed - Seed production datapnpm deploy - Deploy to Cloudflarepnpm preview - Preview deployment locally/ (English)/[locale]/page/ar/destinations, /es/contactThe application deploys to Cloudflare Workers using OpenNext.js:
# Build and deploy
pnpm deploy
# Preview locally
pnpm preview
Required environment variables in .env.local:
# Cloudflare Configuration
CLOUDFLARE_ACCOUNT_ID=your-account-id
CLOUDFLARE_D1_DATABASE_ID=your-database-id
CLOUDFLARE_API_TOKEN=your-api-token
# Next.js Configuration
NEXTAUTH_SECRET=your-secret-key
NEXTAUTH_URL=http://localhost:3001
# Optional: External Services
GOOGLE_CLIENT_ID=your-google-client-id
GOOGLE_CLIENT_SECRET=your-google-client-secret
NEXT_PUBLIC_SENTRY_DSN=your-sentry-dsn
src/
├── app/ # Next.js App Router
│ ├── globals.css # Global styles
│ ├── layout.tsx # Root layout
│ └── [locale]/ # Internationalized routes
├── components/ # Reusable components
│ ├── layout/ # Layout components
│ └── ui/ # Base UI components
├── lib/ # Utility libraries
│ ├── db/ # Database schema & config
│ └── utils.ts # Utility functions
├── i18n/ # Internationalization
└── scripts/ # Database scripts
drizzle/ # Generated migrations
migrations/ # Wrangler migration files
git checkout -b feature/amazing-featurepnpm lint:fixfeat(scope): descriptionThis project is private and proprietary.