Skip to content

Commit

Permalink
Merge pull request #1 from promotion-efficiency/nextjs
Browse files Browse the repository at this point in the history
Nextjs
  • Loading branch information
mo9a7i authored Feb 12, 2025
2 parents 81290bf + 4f11e1f commit 77a6e85
Show file tree
Hide file tree
Showing 74 changed files with 6,677 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"extends": "next"
}
60 changes: 60 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
name: Deploy to GitHub Pages

on:
push:
branches: ["main"]
workflow_dispatch:

permissions:
contents: read
pages: write
id-token: write

concurrency:
group: "pages"
cancel-in-progress: false

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: "20"
cache: 'pnpm'

- name: Setup Pages
uses: actions/configure-pages@v4

- name: Install pnpm
uses: pnpm/action-setup@v2
with:
version: 8

- name: Install dependencies
run: pnpm install

- name: Build with Next.js
run: pnpm build
env:
NEXT_PUBLIC_BASE_PATH: /${{ github.event.repository.name }}

- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: ./out

deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
41 changes: 41 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
.pnp.*
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/versions

# testing
/coverage

# next.js
/.next/
/out/

# production
/build

# misc
.DS_Store
*.pem

# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*

# env files (can opt-in for committing if needed)
.env*

# vercel
.vercel

# typescript
*.tsbuildinfo
next-env.d.ts
36 changes: 36 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app).

## Getting Started

First, run the development server:

```bash
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
```

Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.

You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.

This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel.

## Learn More

To learn more about Next.js, take a look at the following resources:

- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.

You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome!

## Deploy on Vercel

The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.

Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details.
21 changes: 21 additions & 0 deletions components.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"$schema": "https://ui.shadcn.com/schema.json",
"style": "new-york",
"rsc": true,
"tsx": true,
"tailwind": {
"config": "tailwind.config.ts",
"css": "src/app/globals.css",
"baseColor": "neutral",
"cssVariables": false,
"prefix": ""
},
"aliases": {
"components": "@/components",
"utils": "@/lib/utils",
"ui": "@/components/ui",
"lib": "@/lib",
"hooks": "@/hooks"
},
"iconLibrary": "lucide"
}
15 changes: 15 additions & 0 deletions instructions/cursor.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
continue with all other page content from the old website

convert all font awesome implementations to lucide

lets make the language and darkmode toggles look like the social icons
also, remove the social icons from the header


Use shadcn for ui components, tell me how to add the components used by providing the command line for pnpx
use next-intl for i18n with dynamic page routing
make the page support light mode dark mode using a toggle button, not a menu.


for config files, such as taildiwnd's nextjs ....etc, make sure you use the .ts version, not mjs, not js.
for GitHub workflows, create them and modify them in the current repo directory not user root directory
67 changes: 67 additions & 0 deletions messages/ar.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
{
"nav": {
"main": "الرئيسية",
"services": "خدماتنا",
"contact": "تواصل معنا",
"about": "عن الشركة"
},
"hero": {
"title": "ليعلم الجميع",
"description": "لأن قصتك تستحق أن تروى، نساعدك في عملية الانتشار المدروسة، لتسير بخطوات ثابتة",
"cta": "خدمات جهر"
},
"about": {
"title": "من نحن",
"description": "جهر هي شركة سعودية تعمل على تقديم خدمات نوعية في مجال التسويق وخدمات الأعمال بهدف سد الفجوة الموجودة في السوق المحلي، بالإضافة لمساهمة جهر من خلال خدمات ما بعد البيع لتنفيذ الاستراتيجيات على أرض الواقع."
},
"services": {
"title": "خدماتنا",
"items": [
{
"title": "استراتيجيات التسويق",
"description": "تتضمن هذه الخدمة تحديد أهداف الشركاء متوسطة وبعيدة المدى، ووضع منهجيات العمل الداخلية والخارجية، والمساهمة في تخطيط المنتج، والتنفيذ، وتتبع تقدم تنفيذ الاستراتيجية.",
"icon": "LightbulbIcon"
},
{
"title": "استراتيجيات العلامات التجارية",
"description": "في هذه الخدمة نقوم باعداد الخطط طويلة المدى لتحقيق سلسلة من الأهداف الاستراتيجية التي تؤدي في النهاية إلى تعريف علامتك التجارية في المكان المستهدف من قبل المستهلكين.",
"icon": "Paintbrush"
},
{
"title": "إدارة حقوق الملكية الفكرية وحق المؤلف",
"description": "في هذه الخدمة نقوم ب اعداد استراتيجية شاملة لإدارة الأصول غير الملموسة للشركات والأفراد على سبيل المثال لا الحصر: اسم الشركة ، والشعار ، وحماية العلامة التجارية وإدارة تسويقها وترويجها.",
"icon": "PenLine"
},
{
"title": "التسويق نيابة عن الغير",
"description": "تهدف هذه الخدمة لتقديم خدمات إدارة العمليات التسويقية \\ البيعية نيابة عن العملاء بهدف تنشيط المبيعات للمنشآت المستفيدة من الخدمة، ونملك فريق محترف يقدم هذه الخدمات النوعية للمنشآت.",
"icon": "Share2"
},
{
"title": "إدارة العلاقات",
"description": "من خلال هذه الخدمة نقدم خدمات إدارة حسابات كبار العملاء للجهات التي لاتمتلك فرق لنجاحات العملاء والمبيعات، كما اننا نقدم الخدمات الاستشارية لتأسيس هذه الفرق وإدارتها وقياس أدائها.",
"icon": "Megaphone"
},
{
"title": "العلاقات العامة",
"description": "في هذه الخدمة هناك فريق متخصص يديرون الصورة العامة للمؤسسة وسمعتها والتواصل مع الجهات الإعلامية وغيرها، حيث ان عملية إدارة العلاقات العامة هي عملية اتصال إستراتيجية ومهمة للحفاظ على صورة العلامة التجارية للجهات.",
"icon": "Laptop"
}
]
},
"contact": {
"title": "تواصل معنا",
"email": "البريد الإلكتروني",
"phone": "رقم الهاتف",
"form": {
"name": "الاسم",
"phone": "رقم الهاتف",
"email": "البريد الإلكتروني",
"message": "الرسالة",
"submit": "إرسال"
}
},
"footer": {
"rights": "جميع الحقوق محفوظة"
}
}
67 changes: 67 additions & 0 deletions messages/en.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
{
"nav": {
"main": "Home",
"services": "Services",
"contact": "Contact",
"about": "About"
},
"hero": {
"title": "Let Everyone Know",
"description": "Because your story deserves to be told, we help you in the process of thoughtful expansion, to move with steady steps",
"cta": "Our Services"
},
"about": {
"title": "About Us",
"description": "Jahr is a Saudi company providing specialized services in marketing and business services, aiming to bridge the gap in the local market. Additionally, Jahr contributes through after-sales services to implement strategies on the ground."
},
"services": {
"title": "Our Services",
"items": [
{
"title": "Marketing Strategies",
"description": "This service includes identifying partners' medium and long-term goals, establishing internal and external work methodologies, contributing to product planning, implementation, and tracking strategy execution progress.",
"icon": "LightbulbIcon"
},
{
"title": "Brand Strategies",
"description": "In this service, we prepare long-term plans to achieve a series of strategic objectives that ultimately lead to defining your brand in the target consumer space.",
"icon": "Paintbrush"
},
{
"title": "Intellectual Property Management",
"description": "We develop comprehensive strategies for managing intangible assets for companies and individuals, including but not limited to: company names, logos, trademark protection, and marketing management.",
"icon": "PenLine"
},
{
"title": "Third-Party Marketing",
"description": "This service aims to provide marketing/sales operations management services on behalf of clients to stimulate sales for beneficiary establishments, with our professional team delivering these specialized services.",
"icon": "Share2"
},
{
"title": "Relationship Management",
"description": "Through this service, we provide key account management services for entities lacking customer success and sales teams, as well as consulting services for establishing, managing, and measuring the performance of these teams.",
"icon": "Megaphone"
},
{
"title": "Public Relations",
"description": "In this service, a specialized team manages the organization's public image, reputation, and communication with media and other entities, as PR management is a strategic communication process crucial for maintaining brand image.",
"icon": "Laptop"
}
]
},
"contact": {
"title": "Contact Us",
"email": "Email",
"phone": "Phone",
"form": {
"name": "Name",
"email": "Email",
"phone": "Phone",
"message": "Message",
"submit": "Send"
}
},
"footer": {
"rights": "All rights reserved"
}
}
8 changes: 8 additions & 0 deletions middleware.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import createMiddleware from 'next-intl/middleware';
import {routing} from '@/i18n/routing';

export default createMiddleware(routing);

export const config = {
matcher: ['/', '/(ar|en)/:path*']
};
15 changes: 15 additions & 0 deletions next.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import type { NextConfig } from "next";
import createNextIntlPlugin from 'next-intl/plugin';
const withNextIntl = createNextIntlPlugin();

const nextConfig: NextConfig = {
output: 'export',
basePath: process.env.NEXT_PUBLIC_BASE_PATH || '',
images: {
unoptimized: true,
}

};

export default withNextIntl(nextConfig);

File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes.
File renamed without changes.
42 changes: 42 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
{
"name": "jahr_sa",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "next dev --turbopack",
"build": "next build",
"start": "next start",
"lint": "next lint"
},
"dependencies": {
"@formatjs/intl-localematcher": "^0.5.10",
"@radix-ui/react-dropdown-menu": "^2.1.4",
"@radix-ui/react-slot": "^1.1.1",
"@react-three/drei": "9.88.17",
"@react-three/fiber": "8.15.12",
"@types/three": "0.158.3",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"lucide-react": "^0.471.1",
"maath": "0.10.7",
"negotiator": "^1.0.0",
"next": "15.1.4",
"next-intl": "^3.26.3",
"next-themes": "^0.4.4",
"react": "18.2.0",
"react-dom": "18.2.0",
"tailwind-merge": "^2.6.0",
"tailwindcss-animate": "^1.0.7",
"three": "0.158.0",
"vanta": "^0.5.24"
},
"devDependencies": {
"@types/negotiator": "^0.6.3",
"@types/node": "^20",
"@types/react": "^19",
"@types/react-dom": "^19",
"postcss": "^8",
"tailwindcss": "^3.4.1",
"typescript": "^5"
}
}
Loading

0 comments on commit 77a6e85

Please sign in to comment.