malik-AI commited on
Commit
442f755
·
verified ·
1 Parent(s): 96a5800

Create a modern, responsive website with a green theme and soft 3D design style.

Browse files

Purpose:
A simple business analytics website that shows Excel-based data insights.

Pages:
- Home
- Dashboard
- Upload Data
- About

Design:
- Green primary color palette
- Light background with glassmorphism and subtle 3D cards
- Smooth hover animations
- Rounded elements
- Clean typography

Features:
- Homepage with a hero section explaining “AI-Powered Data & Website Builder”
- Dashboard page with sample charts (bar chart, line chart, pie chart)
- Upload section that visually explains Excel/CSV data analysis
- Cards and sections with 3D depth effect
- Responsive for mobile and desktop

Tech:
- HTML, CSS, and JavaScript
- Simple dummy data for charts
- No backend required

Make the UI clean, professional, and suitable for a tech company like NASKSOFT.

Files changed (8) hide show
  1. about.html +84 -0
  2. components/footer.js +161 -0
  3. components/navbar.js +126 -0
  4. dashboard.html +130 -0
  5. index.html +65 -123
  6. script.js +194 -93
  7. style.css +622 -44
  8. upload.html +104 -0
about.html ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>About | NASKSOFT</title>
7
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
8
+ <link rel="stylesheet" href="style.css">
9
+ </head>
10
+ <body>
11
+ <custom-navbar></custom-navbar>
12
+
13
+ <main class="about">
14
+ <section class="about-hero">
15
+ <div class="container">
16
+ <h1>About NASKSOFT</h1>
17
+ <p>Empowering businesses with AI-driven data analytics solutions.</p>
18
+ </div>
19
+ </section>
20
+
21
+ <section class="about-content">
22
+ <div class="container">
23
+ <div class="about-grid">
24
+ <div class="about-text">
25
+ <h2>Our Mission</h2>
26
+ <p>At NASKSOFT, we believe that data should be accessible, understandable, and actionable for everyone. Our mission is to democratize data analytics by providing intuitive tools that transform complex data into clear insights.</p>
27
+
28
+ <h2>Our Story</h2>
29
+ <p>Founded in 2018 by a team of data scientists and engineers, NASKSOFT began with a simple goal: to make advanced analytics available to businesses of all sizes. What started as a small startup has grown into a leading provider of AI-powered analytics solutions, serving thousands of customers worldwide.</p>
30
+
31
+ <h2>Our Technology</h2>
32
+ <p>Our platform combines cutting-edge machine learning algorithms with intuitive visualization tools. We specialize in automated data processing, predictive analytics, and natural language explanations of complex data patterns.</p>
33
+ </div>
34
+ <div class="about-image">
35
+ <img src="http://static.photos/office/640x360/1" alt="NASKSOFT Team">
36
+ </div>
37
+ </div>
38
+ </div>
39
+ </section>
40
+
41
+ <section class="team">
42
+ <div class="container">
43
+ <h2>Meet The Team</h2>
44
+ <div class="team-grid">
45
+ <div class="team-member">
46
+ <div class="member-image">
47
+ <img src="http://static.photos/people/200x200/1" alt="John Doe">
48
+ </div>
49
+ <h3>John Doe</h3>
50
+ <p>CEO & Founder</p>
51
+ </div>
52
+ <div class="team-member">
53
+ <div class="member-image">
54
+ <img src="http://static.photos/people/200x200/2" alt="Jane Smith">
55
+ </div>
56
+ <h3>Jane Smith</h3>
57
+ <p>Chief Data Scientist</p>
58
+ </div>
59
+ <div class="team-member">
60
+ <div class="member-image">
61
+ <img src="http://static.photos/people/200x200/3" alt="Mike Johnson">
62
+ </div>
63
+ <h3>Mike Johnson</h3>
64
+ <p>Lead Developer</p>
65
+ </div>
66
+ <div class="team-member">
67
+ <div class="member-image">
68
+ <img src="http://static.photos/people/200x200/4" alt="Sarah Williams">
69
+ </div>
70
+ <h3>Sarah Williams</h3>
71
+ <p>UX Designer</p>
72
+ </div>
73
+ </div>
74
+ </div>
75
+ </section>
76
+ </main>
77
+
78
+ <custom-footer></custom-footer>
79
+
80
+ <script src="components/navbar.js"></script>
81
+ <script src="components/footer.js"></script>
82
+ <script src="script.js"></script>
83
+ </body>
84
+ </html>
components/footer.js ADDED
@@ -0,0 +1,161 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ class CustomFooter extends HTMLElement {
2
+ connectedCallback() {
3
+ this.attachShadow({ mode: 'open' });
4
+ this.shadowRoot.innerHTML = `
5
+ <style>
6
+ :host {
7
+ display: block;
8
+ background: var(--primary-color);
9
+ color: white;
10
+ padding: 3rem 0 1rem;
11
+ }
12
+
13
+ .footer-container {
14
+ display: grid;
15
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
16
+ gap: 2rem;
17
+ max-width: 1200px;
18
+ margin: 0 auto;
19
+ padding: 0 2rem;
20
+ }
21
+
22
+ .footer-logo {
23
+ font-size: 1.5rem;
24
+ font-weight: 700;
25
+ margin-bottom: 1rem;
26
+ display: flex;
27
+ align-items: center;
28
+ gap: 0.5rem;
29
+ }
30
+
31
+ .footer-logo i {
32
+ color: var(--accent-color);
33
+ }
34
+
35
+ .footer-about p {
36
+ color: rgba(255, 255, 255, 0.7);
37
+ line-height: 1.6;
38
+ margin-bottom: 1rem;
39
+ }
40
+
41
+ .footer-social {
42
+ display: flex;
43
+ gap: 1rem;
44
+ }
45
+
46
+ .footer-social a {
47
+ color: white;
48
+ font-size: 1.2rem;
49
+ transition: color 0.3s;
50
+ }
51
+
52
+ .footer-social a:hover {
53
+ color: var(--accent-color);
54
+ }
55
+
56
+ .footer-column h3 {
57
+ font-size: 1.2rem;
58
+ margin-bottom: 1.5rem;
59
+ position: relative;
60
+ padding-bottom: 0.5rem;
61
+ }
62
+
63
+ .footer-column h3::after {
64
+ content: '';
65
+ position: absolute;
66
+ bottom: 0;
67
+ left: 0;
68
+ width: 50px;
69
+ height: 2px;
70
+ background-color: var(--accent-color);
71
+ }
72
+
73
+ .footer-links {
74
+ list-style: none;
75
+ padding: 0;
76
+ margin: 0;
77
+ }
78
+
79
+ .footer-links li {
80
+ margin-bottom: 0.8rem;
81
+ }
82
+
83
+ .footer-links a {
84
+ color: rgba(255, 255, 255, 0.7);
85
+ text-decoration: none;
86
+ transition: color 0.3s;
87
+ }
88
+
89
+ .footer-links a:hover {
90
+ color: white;
91
+ }
92
+
93
+ .footer-bottom {
94
+ text-align: center;
95
+ padding-top: 2rem;
96
+ margin-top: 2rem;
97
+ border-top: 1px solid rgba(255, 255, 255, 0.1);
98
+ color: rgba(255, 255, 255, 0.5);
99
+ font-size: 0.9rem;
100
+ }
101
+
102
+ @media (max-width: 768px) {
103
+ .footer-container {
104
+ grid-template-columns: 1fr;
105
+ }
106
+ }
107
+ </style>
108
+
109
+ <div class="footer-container">
110
+ <div class="footer-about">
111
+ <div class="footer-logo">
112
+ <i class="fas fa-chart-pie"></i> NASKSOFT
113
+ </div>
114
+ <p>AI-powered data analytics platform that helps businesses make data-driven decisions.</p>
115
+ <div class="footer-social">
116
+ <a href="#"><i class="fab fa-twitter"></i></a>
117
+ <a href="#"><i class="fab fa-linkedin"></i></a>
118
+ <a href="#"><i class="fab fa-github"></i></a>
119
+ <a href="#"><i class="fab fa-facebook"></i></a>
120
+ </div>
121
+ </div>
122
+
123
+ <div class="footer-column">
124
+ <h3>Quick Links</h3>
125
+ <ul class="footer-links">
126
+ <li><a href="/">Home</a></li>
127
+ <li><a href="dashboard.html">Dashboard</a></li>
128
+ <li><a href="upload.html">Upload Data</a></li>
129
+ <li><a href="about.html">About</a></li>
130
+ </ul>
131
+ </div>
132
+
133
+ <div class="footer-column">
134
+ <h3>Company</h3>
135
+ <ul class="footer-links">
136
+ <li><a href="#">Careers</a></li>
137
+ <li><a href="#">Blog</a></li>
138
+ <li><a href="#">Press</a></li>
139
+ <li><a href="#">Partners</a></li>
140
+ </ul>
141
+ </div>
142
+
143
+ <div class="footer-column">
144
+ <h3>Legal</h3>
145
+ <ul class="footer-links">
146
+ <li><a href="#">Privacy Policy</a></li>
147
+ <li><a href="#">Terms of Service</a></li>
148
+ <li><a href="#">Cookie Policy</a></li>
149
+ <li><a href="#">GDPR</a></li>
150
+ </ul>
151
+ </div>
152
+ </div>
153
+
154
+ <div class="footer-bottom">
155
+ &copy; ${new Date().getFullYear()} NASKSOFT. All rights reserved.
156
+ </div>
157
+ `;
158
+ }
159
+ }
160
+
161
+ customElements.define('custom-footer', CustomFooter);
components/navbar.js ADDED
@@ -0,0 +1,126 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ class CustomNavbar extends HTMLElement {
2
+ connectedCallback() {
3
+ this.attachShadow({ mode: 'open' });
4
+ this.shadowRoot.innerHTML = `
5
+ <style>
6
+ :host {
7
+ display: block;
8
+ position: fixed;
9
+ top: 0;
10
+ left: 0;
11
+ right: 0;
12
+ z-index: 1000;
13
+ }
14
+
15
+ .navbar {
16
+ display: flex;
17
+ justify-content: space-between;
18
+ align-items: center;
19
+ padding: 1rem 2rem;
20
+ background: rgba(255, 255, 255, 0.9);
21
+ backdrop-filter: blur(10px);
22
+ box-shadow: 0 2px 20px rgba(0, 0, 0, 0.1);
23
+ border-bottom: 1px solid rgba(0, 0, 0, 0.05);
24
+ }
25
+
26
+ .logo {
27
+ font-size: 1.5rem;
28
+ font-weight: 700;
29
+ color: var(--primary-color);
30
+ text-decoration: none;
31
+ display: flex;
32
+ align-items: center;
33
+ gap: 0.5rem;
34
+ }
35
+
36
+ .logo i {
37
+ color: var(--accent-color);
38
+ }
39
+
40
+ .nav-links {
41
+ display: flex;
42
+ gap: 2rem;
43
+ }
44
+
45
+ .nav-links a {
46
+ color: var(--text-color);
47
+ text-decoration: none;
48
+ font-weight: 500;
49
+ transition: all 0.3s ease;
50
+ position: relative;
51
+ }
52
+
53
+ .nav-links a:hover {
54
+ color: var(--primary-color);
55
+ }
56
+
57
+ .nav-links a::after {
58
+ content: '';
59
+ position: absolute;
60
+ bottom: -5px;
61
+ left: 0;
62
+ width: 0;
63
+ height: 2px;
64
+ background-color: var(--accent-color);
65
+ transition: width 0.3s ease;
66
+ }
67
+
68
+ .nav-links a:hover::after {
69
+ width: 100%;
70
+ }
71
+
72
+ .auth-buttons {
73
+ display: flex;
74
+ gap: 1rem;
75
+ }
76
+
77
+ .mobile-menu-btn {
78
+ display: none;
79
+ background: none;
80
+ border: none;
81
+ font-size: 1.5rem;
82
+ color: var(--text-color);
83
+ cursor: pointer;
84
+ }
85
+
86
+ @media (max-width: 768px) {
87
+ .nav-links, .auth-buttons {
88
+ display: none;
89
+ }
90
+
91
+ .mobile-menu-btn {
92
+ display: block;
93
+ }
94
+
95
+ .logo {
96
+ font-size: 1.2rem;
97
+ }
98
+ }
99
+ </style>
100
+
101
+ <nav class="navbar">
102
+ <a href="/" class="logo">
103
+ <i class="fas fa-chart-pie"></i> NASKSOFT
104
+ </a>
105
+
106
+ <div class="nav-links">
107
+ <a href="/">Home</a>
108
+ <a href="dashboard.html">Dashboard</a>
109
+ <a href="upload.html">Upload Data</a>
110
+ <a href="about.html">About</a>
111
+ </div>
112
+
113
+ <div class="auth-buttons">
114
+ <a href="#" class="btn btn-outline">Login</a>
115
+ <a href="#" class="btn btn-primary">Sign Up</a>
116
+ </div>
117
+
118
+ <button class="mobile-menu-btn">
119
+ <i class="fas fa-bars"></i>
120
+ </button>
121
+ </nav>
122
+ `;
123
+ }
124
+ }
125
+
126
+ customElements.define('custom-navbar', CustomNavbar);
dashboard.html ADDED
@@ -0,0 +1,130 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Dashboard | NASKSOFT</title>
7
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
8
+ <link rel="stylesheet" href="style.css">
9
+ </head>
10
+ <body>
11
+ <custom-navbar></custom-navbar>
12
+
13
+ <main class="dashboard">
14
+ <div class="container">
15
+ <div class="dashboard-header">
16
+ <h1>Sales Dashboard</h1>
17
+ <div class="dashboard-actions">
18
+ <button class="btn btn-outline"><i class="fas fa-download"></i> Export</button>
19
+ <button class="btn btn-primary"><i class="fas fa-share"></i> Share</button>
20
+ </div>
21
+ </div>
22
+
23
+ <div class="dashboard-grid">
24
+ <div class="dashboard-card wide">
25
+ <h3>Quarterly Revenue</h3>
26
+ <div class="chart-container">
27
+ <canvas id="lineChart"></canvas>
28
+ </div>
29
+ </div>
30
+ <div class="dashboard-card">
31
+ <h3>Sales by Region</h3>
32
+ <div class="chart-container">
33
+ <canvas id="barChart"></canvas>
34
+ </div>
35
+ </div>
36
+ <div class="dashboard-card">
37
+ <h3>Product Mix</h3>
38
+ <div class="chart-container">
39
+ <canvas id="pieChart"></canvas>
40
+ </div>
41
+ </div>
42
+ <div class="dashboard-card">
43
+ <h3>Top Customers</h3>
44
+ <div class="data-table">
45
+ <table>
46
+ <thead>
47
+ <tr>
48
+ <th>Customer</th>
49
+ <th>Revenue</th>
50
+ </tr>
51
+ </thead>
52
+ <tbody>
53
+ <tr>
54
+ <td>Acme Corp</td>
55
+ <td>$12,450</td>
56
+ </tr>
57
+ <tr>
58
+ <td>Globex</td>
59
+ <td>$9,870</td>
60
+ </tr>
61
+ <tr>
62
+ <td>Initech</td>
63
+ <td>$8,120</td>
64
+ </tr>
65
+ <tr>
66
+ <td>Umbrella</td>
67
+ <td>$7,650</td>
68
+ </tr>
69
+ </tbody>
70
+ </table>
71
+ </div>
72
+ </div>
73
+ <div class="dashboard-card wide">
74
+ <h3>Recent Transactions</h3>
75
+ <div class="data-table">
76
+ <table>
77
+ <thead>
78
+ <tr>
79
+ <th>Date</th>
80
+ <th>Customer</th>
81
+ <th>Product</th>
82
+ <th>Amount</th>
83
+ <th>Status</th>
84
+ </tr>
85
+ </thead>
86
+ <tbody>
87
+ <tr>
88
+ <td>2023-06-15</td>
89
+ <td>Acme Corp</td>
90
+ <td>Pro Plan</td>
91
+ <td>$1,200</td>
92
+ <td><span class="status completed">Completed</span></td>
93
+ </tr>
94
+ <tr>
95
+ <td>2023-06-14</td>
96
+ <td>Globex</td>
97
+ <td>Basic Plan</td>
98
+ <td>$450</td>
99
+ <td><span class="status completed">Completed</span></td>
100
+ </tr>
101
+ <tr>
102
+ <td>2023-06-12</td>
103
+ <td>Initech</td>
104
+ <td>Enterprise Plan</td>
105
+ <td>$2,800</td>
106
+ <td><span class="status pending">Pending</span></td>
107
+ </tr>
108
+ <tr>
109
+ <td>2023-06-10</td>
110
+ <td>Umbrella</td>
111
+ <td>Pro Plan</td>
112
+ <td>$1,200</td>
113
+ <td><span class="status completed">Completed</span></td>
114
+ </tr>
115
+ </tbody>
116
+ </table>
117
+ </div>
118
+ </div>
119
+ </div>
120
+ </div>
121
+ </main>
122
+
123
+ <custom-footer></custom-footer>
124
+
125
+ <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
126
+ <script src="components/navbar.js"></script>
127
+ <script src="components/footer.js"></script>
128
+ <script src="script.js"></script>
129
+ </body>
130
+ </html>
index.html CHANGED
@@ -3,145 +3,87 @@
3
  <head>
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Pakistan Property - Find Homes, Plots & Commercial Properties</title>
7
- <link rel="stylesheet" href="style.css">
8
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
9
- <script src="script.js" defer></script>
10
  </head>
11
- <body class="parallax">
12
- <script src="components/parallax-bg.js"></script>
13
- <div class="parallax-layer parallax-layer--back"></div>
14
- <div class="parallax-layer parallax-layer--deep"></div>
15
- <div class="parallax-layer parallax-layer--base">
16
- <header>
17
- <div class="top-bar">
18
- <div class="container">
19
- <div class="logo">
20
- <a href="/">PakistanProperty.com</a>
21
- </div>
22
- <nav>
23
- <a href="#">Buy</a>
24
- <a href="#">Rent</a>
25
- <a href="#">Sell</a>
26
- <a href="#">Agents</a>
27
- <a href="#">Blog</a>
28
- </nav>
29
- <div class="auth-buttons">
30
- <a href="#" class="btn btn-outline">Login</a>
31
- <a href="#" class="btn">Register</a>
32
- </div>
33
- </div>
34
- </div>
35
- </header>
36
 
37
- <main class="container">
38
  <section class="hero">
39
- <parallax-bg image="https://static.photos/cityscape/1200x630/1"></parallax-bg>
40
- <div class="hero-content">
41
- <h1 data-parallax-speed="0.2">Find Your Dream Property in Pakistan</h1>
42
- <p data-parallax-speed="0.1">Thousands of listings for homes, plots and commercial properties</p>
43
-
44
- <div class="search-box" data-parallax-speed="0.05">
45
- <div class="tabs">
46
- <button class="active">Buy</button>
47
- <button>Rent</button>
48
  </div>
49
-
50
- <div class="search-filters">
51
- <select>
52
- <option>All Cities</option>
53
- <option>Karachi</option>
54
- <option>Lahore</option>
55
- <option>Islamabad</option>
56
- <option>Rawalpindi</option>
57
- </select>
58
-
59
- <select>
60
- <option>All Types</option>
61
- <option>Houses</option>
62
- <option>Plots</option>
63
- <option>Apartments</option>
64
- <option>Commercial</option>
65
- </select>
66
-
67
- <input type="text" placeholder="Search by location, project or landmark">
68
-
69
- <button class="btn btn-search">
70
- <i class="fas fa-search"></i> Search
71
- </button>
72
  </div>
73
  </div>
74
  </section>
75
 
76
- <section class="featured-properties">
77
- <h2>Featured Properties</h2>
78
- <div class="property-grid">
79
- <!-- Property cards will be loaded here via JavaScript -->
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
80
  </div>
81
  </section>
82
 
83
- <section class="categories">
84
- <h2>Browse by Category</h2>
85
- <div class="category-grid">
86
- <div class="category-card">
87
- <div class="icon"><i class="fas fa-home"></i></div>
88
- <h3>Houses</h3>
89
- <p>5,234 Properties</p>
90
- </div>
91
- <div class="category-card">
92
- <div class="icon"><i class="fas fa-building"></i></div>
93
- <h3>Apartments</h3>
94
- <p>3,456 Properties</p>
95
- </div>
96
- <div class="category-card">
97
- <div class="icon"><i class="fas fa-vector-square"></i></div>
98
- <h3>Plots</h3>
99
- <p>8,901 Properties</p>
100
- </div>
101
- <div class="category-card">
102
- <div class="icon"><i class="fas fa-store"></i></div>
103
- <h3>Commercial</h3>
104
- <p>2,345 Properties</p>
105
  </div>
106
  </div>
107
  </section>
108
  </main>
109
 
110
- <footer>
111
- <div class="container">
112
- <div class="footer-grid">
113
- <div class="footer-column">
114
- <h3>PakistanProperty</h3>
115
- <a href="#">About Us</a>
116
- <a href="#">Contact Us</a>
117
- <a href="#">Careers</a>
118
- <a href="#">Press</a>
119
- </div>
120
- <div class="footer-column">
121
- <h3>Explore</h3>
122
- <a href="#">Properties in Karachi</a>
123
- <a href="#">Properties in Lahore</a>
124
- <a href="#">Properties in Islamabad</a>
125
- <a href="#">Properties in Peshawar</a>
126
- </div>
127
- <div class="footer-column">
128
- <h3>Legal</h3>
129
- <a href="#">Terms of Use</a>
130
- <a href="#">Privacy Policy</a>
131
- <a href="#">Sitemap</a>
132
- </div>
133
- <div class="footer-column">
134
- <h3>Connect</h3>
135
- <a href="#"><i class="fab fa-facebook"></i> Facebook</a>
136
- <a href="#"><i class="fab fa-twitter"></i> Twitter</a>
137
- <a href="#"><i class="fab fa-instagram"></i> Instagram</a>
138
- </div>
139
- </div>
140
- <div class="copyright">
141
- <p>&copy; 2023 PakistanProperty.com. All rights reserved.</p>
142
- </div>
143
- </div>
144
- </footer>
145
- </div> <!-- close parallax base layer -->
146
  </body>
147
  </html>
 
3
  <head>
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>NASKSOFT | AI-Powered Data Analytics</title>
 
7
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
8
+ <link rel="stylesheet" href="style.css">
9
  </head>
10
+ <body>
11
+ <custom-navbar></custom-navbar>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
 
13
+ <main>
14
  <section class="hero">
15
+ <div class="container">
16
+ <div class="hero-content">
17
+ <h1>Transform Data into <span>Actionable Insights</span></h1>
18
+ <p>Our AI-powered platform helps you analyze, visualize and make data-driven decisions effortlessly.</p>
19
+ <div class="hero-buttons">
20
+ <a href="dashboard.html" class="btn btn-primary">View Demo</a>
21
+ <a href="#" class="btn btn-outline">Learn More</a>
22
+ </div>
 
23
  </div>
24
+ <div class="hero-image">
25
+ <img src="http://static.photos/technology/1024x576/1" alt="Data Analytics Dashboard">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26
  </div>
27
  </div>
28
  </section>
29
 
30
+ <section class="features">
31
+ <div class="container">
32
+ <h2>Key Features</h2>
33
+ <div class="features-grid">
34
+ <div class="feature-card">
35
+ <div class="card-icon">
36
+ <i class="fas fa-chart-line"></i>
37
+ </div>
38
+ <h3>Advanced Analytics</h3>
39
+ <p>Powerful tools to uncover hidden patterns and trends in your data.</p>
40
+ </div>
41
+ <div class="feature-card">
42
+ <div class="card-icon">
43
+ <i class="fas fa-file-excel"></i>
44
+ </div>
45
+ <h3>Excel Integration</h3>
46
+ <p>Seamlessly import and analyze Excel/CSV files without complex setup.</p>
47
+ </div>
48
+ <div class="feature-card">
49
+ <div class="card-icon">
50
+ <i class="fas fa-robot"></i>
51
+ </div>
52
+ <h3>AI-Powered Insights</h3>
53
+ <p>Get automated recommendations and predictions from our AI models.</p>
54
+ </div>
55
+ </div>
56
  </div>
57
  </section>
58
 
59
+ <section class="how-it-works">
60
+ <div class="container">
61
+ <h2>How It Works</h2>
62
+ <div class="steps">
63
+ <div class="step">
64
+ <div class="step-number">1</div>
65
+ <h3>Upload Your Data</h3>
66
+ <p>Drag & drop your Excel, CSV or connect to your database.</p>
67
+ </div>
68
+ <div class="step">
69
+ <div class="step-number">2</div>
70
+ <h3>Analyze & Visualize</h3>
71
+ <p>Our AI automatically processes and generates insightful visualizations.</p>
72
+ </div>
73
+ <div class="step">
74
+ <div class="step-number">3</div>
75
+ <h3>Make Decisions</h3>
76
+ <p>Get actionable insights to drive your business forward.</p>
77
+ </div>
 
 
 
78
  </div>
79
  </div>
80
  </section>
81
  </main>
82
 
83
+ <custom-footer></custom-footer>
84
+
85
+ <script src="components/navbar.js"></script>
86
+ <script src="components/footer.js"></script>
87
+ <script src="script.js"></script>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
88
  </body>
89
  </html>
script.js CHANGED
@@ -1,105 +1,206 @@
1
 
2
- // Parallax effect
3
- function setupParallax() {
4
- const parallaxElements = document.querySelectorAll('[data-parallax-speed]');
5
-
6
- window.addEventListener('scroll', () => {
7
- const scrollPosition = window.pageYOffset;
8
-
9
- parallaxElements.forEach(element => {
10
- const speed = parseFloat(element.getAttribute('data-parallax-speed'));
11
- const yPos = -(scrollPosition * speed);
12
- element.style.transform = `translateY(${yPos}px)`;
13
- });
14
- });
15
- }
16
-
17
  document.addEventListener('DOMContentLoaded', function() {
18
- setupParallax();
 
 
 
19
 
20
- // Load featured properties
21
- const propertyGrid = document.querySelector('.property-grid');
 
 
22
 
23
- const properties = [
24
- {
25
- id: 1,
26
- title: "Modern House in DHA Phase 5",
27
- location: "DHA Phase 5, Karachi",
28
- price: "PKR 45,000,000",
29
- type: "House",
30
- beds: 4,
31
- baths: 3,
32
- area: "2500 sq.ft",
33
- image: "https://static.photos/houses/640x360/1"
34
- },
35
- {
36
- id: 2,
37
- title: "Luxury Apartment in Bahria Town",
38
- location: "Bahria Town, Lahore",
39
- price: "PKR 28,500,000",
40
- type: "Apartment",
41
- beds: 3,
42
- baths: 2,
43
- area: "1800 sq.ft",
44
- image: "https://static.photos/apartments/640x360/2"
 
45
  },
46
- {
47
- id: 3,
48
- title: "Commercial Plot in Blue Area",
49
- location: "Blue Area, Islamabad",
50
- price: "PKR 120,000,000",
51
- type: "Commercial",
52
- beds: 0,
53
- baths: 0,
54
- area: "2 kanal",
55
- image: "https://static.photos/commercial/640x360/3"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
56
  },
57
- {
58
- id: 4,
59
- title: "Residential Plot in DHA Phase 6",
60
- location: "DHA Phase 6, Karachi",
61
- price: "PKR 35,000,000",
62
- type: "Plot",
63
- beds: 0,
64
- baths: 0,
65
- area: "1 kanal",
66
- image: "https://static.photos/plots/640x360/4"
 
 
 
 
 
 
 
 
 
 
 
67
  }
68
- ];
69
 
70
- properties.forEach(property => {
71
- const propertyCard = document.createElement('div');
72
- propertyCard.className = 'property-card';
73
- propertyCard.innerHTML = `
74
- <div class="property-image" style="background-image: url('${property.image}')">
75
- <span class="property-tag">${property.type}</span>
76
- </div>
77
- <div class="property-details">
78
- <div class="property-price">${property.price}</div>
79
- <h3 class="property-title">${property.title}</h3>
80
- <div class="property-location">
81
- <i class="fas fa-map-marker-alt"></i> ${property.location}
82
- </div>
83
- <div class="property-features">
84
- <span><i class="fas fa-bed"></i> ${property.beds} Beds</span>
85
- <span><i class="fas fa-bath"></i> ${property.baths} Baths</span>
86
- <span><i class="fas fa-ruler-combined"></i> ${property.area}</span>
87
- </div>
88
- </div>
89
- `;
90
- propertyGrid.appendChild(propertyCard);
 
 
 
 
 
 
91
  });
 
92
 
93
- // Tab switching in search box
94
- const tabs = document.querySelectorAll('.tabs button');
95
- tabs.forEach(tab => {
96
- tab.addEventListener('click', function() {
97
- tabs.forEach(t => t.classList.remove('active'));
98
- this.classList.add('active');
99
- });
 
 
 
 
 
 
 
100
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
101
 
102
- // Current year in footer
103
- document.querySelector('.copyright p').innerHTML =
104
- `&copy; ${new Date().getFullYear()} PakistanProperty.com. All rights reserved.`;
105
- });
 
 
 
 
1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  document.addEventListener('DOMContentLoaded', function() {
3
+ // Initialize charts on dashboard page
4
+ if (document.querySelector('#lineChart')) {
5
+ initCharts();
6
+ }
7
 
8
+ // File upload dropzone functionality
9
+ if (document.getElementById('dropzone')) {
10
+ setupFileUpload();
11
+ }
12
 
13
+ // Mobile menu toggle
14
+ const mobileMenuBtn = document.querySelector('.mobile-menu-btn');
15
+ if (mobileMenuBtn) {
16
+ mobileMenuBtn.addEventListener('click', toggleMobileMenu);
17
+ }
18
+ });
19
+
20
+ function initCharts() {
21
+ // Line Chart
22
+ const lineCtx = document.getElementById('lineChart').getContext('2d');
23
+ const lineChart = new Chart(lineCtx, {
24
+ type: 'line',
25
+ data: {
26
+ labels: ['Q1', 'Q2', 'Q3', 'Q4'],
27
+ datasets: [{
28
+ label: 'Revenue',
29
+ data: [12000, 19000, 15000, 22000],
30
+ backgroundColor: 'rgba(46, 125, 50, 0.2)',
31
+ borderColor: 'rgba(46, 125, 50, 1)',
32
+ borderWidth: 2,
33
+ tension: 0.3,
34
+ fill: true
35
+ }]
36
  },
37
+ options: {
38
+ responsive: true,
39
+ maintainAspectRatio: false,
40
+ plugins: {
41
+ legend: {
42
+ display: false
43
+ }
44
+ },
45
+ scales: {
46
+ y: {
47
+ beginAtZero: true,
48
+ grid: {
49
+ color: 'rgba(0, 0, 0, 0.05)'
50
+ }
51
+ },
52
+ x: {
53
+ grid: {
54
+ display: false
55
+ }
56
+ }
57
+ }
58
+ }
59
+ });
60
+
61
+ // Bar Chart
62
+ const barCtx = document.getElementById('barChart').getContext('2d');
63
+ const barChart = new Chart(barCtx, {
64
+ type: 'bar',
65
+ data: {
66
+ labels: ['North', 'South', 'East', 'West'],
67
+ datasets: [{
68
+ label: 'Sales',
69
+ data: [12000, 19000, 8000, 15000],
70
+ backgroundColor: [
71
+ 'rgba(76, 175, 80, 0.7)',
72
+ 'rgba(139, 195, 74, 0.7)',
73
+ 'rgba(205, 220, 57, 0.7)',
74
+ 'rgba(255, 235, 59, 0.7)'
75
+ ],
76
+ borderColor: [
77
+ 'rgba(76, 175, 80, 1)',
78
+ 'rgba(139, 195, 74, 1)',
79
+ 'rgba(205, 220, 57, 1)',
80
+ 'rgba(255, 235, 59, 1)'
81
+ ],
82
+ borderWidth: 1
83
+ }]
84
  },
85
+ options: {
86
+ responsive: true,
87
+ maintainAspectRatio: false,
88
+ plugins: {
89
+ legend: {
90
+ display: false
91
+ }
92
+ },
93
+ scales: {
94
+ y: {
95
+ beginAtZero: true,
96
+ grid: {
97
+ color: 'rgba(0, 0, 0, 0.05)'
98
+ }
99
+ },
100
+ x: {
101
+ grid: {
102
+ display: false
103
+ }
104
+ }
105
+ }
106
  }
107
+ });
108
 
109
+ // Pie Chart
110
+ const pieCtx = document.getElementById('pieChart').getContext('2d');
111
+ const pieChart = new Chart(pieCtx, {
112
+ type: 'pie',
113
+ data: {
114
+ labels: ['Product A', 'Product B', 'Product C', 'Product D'],
115
+ datasets: [{
116
+ data: [30000, 25000, 18000, 15000],
117
+ backgroundColor: [
118
+ 'rgba(46, 125, 50, 0.7)',
119
+ 'rgba(76, 175, 80, 0.7)',
120
+ 'rgba(139, 195, 74, 0.7)',
121
+ 'rgba(205, 220, 57, 0.7)'
122
+ ],
123
+ borderColor: 'rgba(255, 255, 255, 0.8)',
124
+ borderWidth: 2
125
+ }]
126
+ },
127
+ options: {
128
+ responsive: true,
129
+ maintainAspectRatio: false,
130
+ plugins: {
131
+ legend: {
132
+ position: 'bottom'
133
+ }
134
+ }
135
+ }
136
  });
137
+ }
138
 
139
+ function setupFileUpload() {
140
+ const dropzone = document.getElementById('dropzone');
141
+ const fileInput = document.getElementById('fileInput');
142
+
143
+ // Handle click on dropzone
144
+ dropzone.addEventListener('click', () => {
145
+ fileInput.click();
146
+ });
147
+
148
+ // Handle file selection
149
+ fileInput.addEventListener('change', (e) => {
150
+ if (e.target.files.length) {
151
+ handleFiles(e.target.files);
152
+ }
153
  });
154
+
155
+ // Handle drag and drop
156
+ ['dragenter', 'dragover', 'dragleave', 'drop'].forEach(eventName => {
157
+ dropzone.addEventListener(eventName, preventDefaults, false);
158
+ });
159
+
160
+ function preventDefaults(e) {
161
+ e.preventDefault();
162
+ e.stopPropagation();
163
+ }
164
+
165
+ ['dragenter', 'dragover'].forEach(eventName => {
166
+ dropzone.addEventListener(eventName, highlight, false);
167
+ });
168
+
169
+ ['dragleave', 'drop'].forEach(eventName => {
170
+ dropzone.addEventListener(eventName, unhighlight, false);
171
+ });
172
+
173
+ function highlight() {
174
+ dropzone.classList.add('highlight');
175
+ }
176
+
177
+ function unhighlight() {
178
+ dropzone.classList.remove('highlight');
179
+ }
180
+
181
+ // Handle dropped files
182
+ dropzone.addEventListener('drop', (e) => {
183
+ const dt = e.dataTransfer;
184
+ const files = dt.files;
185
+ handleFiles(files);
186
+ });
187
+
188
+ function handleFiles(files) {
189
+ const file = files[0];
190
+ if (file) {
191
+ // In a real app, you would process the file here
192
+ alert(`File "${file.name}" ready for processing!`);
193
+
194
+ // Show the data preview section
195
+ document.querySelector('.data-preview').style.display = 'block';
196
+ }
197
+ }
198
+ }
199
 
200
+ function toggleMobileMenu() {
201
+ const navLinks = document.querySelector('.nav-links');
202
+ const authButtons = document.querySelector('.auth-buttons');
203
+
204
+ navLinks.style.display = navLinks.style.display === 'flex' ? 'none' : 'flex';
205
+ authButtons.style.display = authButtons.style.display === 'flex' ? 'none' : 'flex';
206
+ }
style.css CHANGED
@@ -1,55 +1,631 @@
1
 
2
  :root {
3
- --primary-color: #2c3e50;
4
- --secondary-color: #e74c3c;
5
- --accent-color: #3498db;
6
- --light-color: #ecf0f1;
7
- --dark-color: #2c3e50;
8
- --text-color: #333;
9
- --text-light: #7f8c8d;
10
- }
11
-
12
- /* Parallax base styles */
13
- .parallax {
14
- perspective: 1px;
15
- height: 100vh;
16
- overflow-x: hidden;
17
- overflow-y: auto;
 
 
 
 
 
 
 
 
 
18
  }
19
 
20
- .parallax-layer {
21
- position: absolute;
22
- top: 0;
23
- right: 0;
24
- bottom: 0;
25
- left: 0;
26
  }
27
 
28
- .parallax-layer--base {
29
- transform: translateZ(0);
30
- z-index: 1;
 
 
 
 
31
  }
32
 
33
- .parallax-layer--back {
34
- transform: translateZ(-1px) scale(2);
35
- z-index: -1;
 
 
36
  }
37
 
38
- .parallax-layer--deep {
39
- transform: translateZ(-2px) scale(3);
40
- z-index: -2;
41
  }
42
  * {
43
  margin: 0;
44
  padding: 0;
45
  box-sizing: border-box;
46
  }
 
47
  body {
48
- font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
49
  color: var(--text-color);
50
  line-height: 1.6;
 
51
  overflow-x: hidden;
52
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53
  .container {
54
  width: 90%;
55
  max-width: 1200px;
@@ -370,24 +946,26 @@ footer {
370
  color: #bdc3c7;
371
  font-size: 0.9rem;
372
  }
373
-
374
  @media (max-width: 768px) {
375
- .top-bar {
376
- flex-direction: column;
377
- gap: 1rem;
378
  }
379
 
380
- nav {
381
- flex-wrap: wrap;
382
- justify-content: center;
383
  }
384
 
385
- .search-filters {
386
- grid-template-columns: 1fr;
387
  }
388
 
389
- .property-grid,
390
- .category-grid {
391
- grid-template-columns: 1fr;
392
  }
393
- }
 
 
 
 
 
 
1
 
2
  :root {
3
+ --primary-color: #2e7d32;
4
+ --secondary-color: #4caf50;
5
+ --accent-color: #8bc34a;
6
+ --light-color: #f1f8e9;
7
+ --dark-color: #1b5e20;
8
+ --text-color: #263238;
9
+ --text-light: #607d8b;
10
+
11
+ --shadow-sm: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
12
+ --shadow-md: 0 4px 6px rgba(0,0,0,0.1), 0 1px 3px rgba(0,0,0,0.08);
13
+ --shadow-lg: 0 10px 25px rgba(0,0,0,0.1), 0 5px 10px rgba(0,0,0,0.05);
14
+ --shadow-xl: 0 20px 40px rgba(0,0,0,0.15), 0 10px 10px rgba(0,0,0,0.05);
15
+
16
+ --transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
17
+ }
18
+ /* 3D Card Effect */
19
+ .card {
20
+ background: rgba(255, 255, 255, 0.8);
21
+ backdrop-filter: blur(10px);
22
+ border-radius: 16px;
23
+ box-shadow: var(--shadow-md);
24
+ transition: var(--transition);
25
+ transform: translateY(0) scale(1);
26
+ border: 1px solid rgba(255, 255, 255, 0.3);
27
  }
28
 
29
+ .card:hover {
30
+ transform: translateY(-5px) scale(1.02);
31
+ box-shadow: var(--shadow-xl);
 
 
 
32
  }
33
 
34
+ /* Glassmorphism effect */
35
+ .glass {
36
+ background: rgba(255, 255, 255, 0.2);
37
+ backdrop-filter: blur(10px);
38
+ border-radius: 12px;
39
+ border: 1px solid rgba(255, 255, 255, 0.3);
40
+ box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
41
  }
42
 
43
+ /* Floating animation */
44
+ @keyframes float {
45
+ 0% { transform: translateY(0px); }
46
+ 50% { transform: translateY(-10px); }
47
+ 100% { transform: translateY(0px); }
48
  }
49
 
50
+ .floating {
51
+ animation: float 6s ease-in-out infinite;
 
52
  }
53
  * {
54
  margin: 0;
55
  padding: 0;
56
  box-sizing: border-box;
57
  }
58
+
59
  body {
60
+ font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
61
  color: var(--text-color);
62
  line-height: 1.6;
63
+ background-color: #f5f5f5;
64
  overflow-x: hidden;
65
  }
66
+
67
+ @supports (font-variation-settings: normal) {
68
+ body {
69
+ font-family: 'Inter var', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
70
+ }
71
+ }
72
+
73
+ h1, h2, h3, h4, h5, h6 {
74
+ font-weight: 600;
75
+ line-height: 1.2;
76
+ color: var(--dark-color);
77
+ }
78
+
79
+ a {
80
+ color: var(--primary-color);
81
+ text-decoration: none;
82
+ transition: var(--transition);
83
+ }
84
+
85
+ a:hover {
86
+ color: var(--accent-color);
87
+ }
88
+
89
+ .container {
90
+ width: 90%;
91
+ max-width: 1200px;
92
+ margin: 0 auto;
93
+ padding: 0 20px;
94
+ }
95
+
96
+ /* Buttons */
97
+ .btn {
98
+ display: inline-block;
99
+ padding: 0.75rem 1.5rem;
100
+ border-radius: 8px;
101
+ font-weight: 500;
102
+ text-align: center;
103
+ transition: var(--transition);
104
+ cursor: pointer;
105
+ border: none;
106
+ }
107
+
108
+ .btn-primary {
109
+ background-color: var(--primary-color);
110
+ color: white;
111
+ box-shadow: var(--shadow-sm);
112
+ }
113
+
114
+ .btn-primary:hover {
115
+ background-color: var(--dark-color);
116
+ transform: translateY(-2px);
117
+ box-shadow: var(--shadow-md);
118
+ }
119
+
120
+ .btn-outline {
121
+ background-color: transparent;
122
+ color: var(--primary-color);
123
+ border: 1px solid var(--primary-color);
124
+ }
125
+
126
+ .btn-outline:hover {
127
+ background-color: var(--primary-color);
128
+ color: white;
129
+ transform: translateY(-2px);
130
+ box-shadow: var(--shadow-sm);
131
+ }
132
+
133
+ /* Hero Section */
134
+ .hero {
135
+ padding: 7rem 0 5rem;
136
+ background: linear-gradient(135deg, #e8f5e9, #c8e6c9);
137
+ position: relative;
138
+ overflow: hidden;
139
+ }
140
+
141
+ .hero::before {
142
+ content: '';
143
+ position: absolute;
144
+ top: -50%;
145
+ left: -50%;
146
+ width: 200%;
147
+ height: 200%;
148
+ background: radial-gradient(circle, rgba(76, 175, 80, 0.1) 0%, rgba(255, 255, 255, 0) 70%);
149
+ animation: float 15s infinite linear;
150
+ }
151
+
152
+ .hero-content {
153
+ position: relative;
154
+ z-index: 2;
155
+ }
156
+
157
+ .hero h1 {
158
+ font-size: 3rem;
159
+ margin-bottom: 1.5rem;
160
+ color: var(--dark-color);
161
+ }
162
+
163
+ .hero h1 span {
164
+ color: var(--accent-color);
165
+ }
166
+
167
+ .hero p {
168
+ font-size: 1.25rem;
169
+ color: var(--text-light);
170
+ max-width: 600px;
171
+ margin-bottom: 2rem;
172
+ }
173
+
174
+ .hero-buttons {
175
+ display: flex;
176
+ gap: 1rem;
177
+ margin-top: 2rem;
178
+ }
179
+
180
+ .hero-image {
181
+ margin-top: 3rem;
182
+ border-radius: 16px;
183
+ overflow: hidden;
184
+ box-shadow: var(--shadow-xl);
185
+ transform: perspective(1000px) rotateX(10deg);
186
+ transition: var(--transition);
187
+ }
188
+
189
+ .hero-image:hover {
190
+ transform: perspective(1000px) rotateX(5deg);
191
+ }
192
+
193
+ .hero-image img {
194
+ width: 100%;
195
+ height: auto;
196
+ display: block;
197
+ border-radius: 16px;
198
+ }
199
+
200
+ /* Features Section */
201
+ .features {
202
+ padding: 5rem 0;
203
+ background-color: white;
204
+ }
205
+
206
+ .features h2 {
207
+ text-align: center;
208
+ margin-bottom: 3rem;
209
+ }
210
+
211
+ .features-grid {
212
+ display: grid;
213
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
214
+ gap: 2rem;
215
+ }
216
+
217
+ .feature-card {
218
+ background: white;
219
+ padding: 2rem;
220
+ border-radius: 16px;
221
+ box-shadow: var(--shadow-md);
222
+ transition: var(--transition);
223
+ text-align: center;
224
+ }
225
+
226
+ .feature-card:hover {
227
+ transform: translateY(-10px);
228
+ box-shadow: var(--shadow-xl);
229
+ }
230
+
231
+ .card-icon {
232
+ width: 80px;
233
+ height: 80px;
234
+ background-color: var(--light-color);
235
+ border-radius: 50%;
236
+ display: flex;
237
+ align-items: center;
238
+ justify-content: center;
239
+ margin: 0 auto 1.5rem;
240
+ font-size: 1.8rem;
241
+ color: var(--primary-color);
242
+ transition: var(--transition);
243
+ }
244
+
245
+ .feature-card:hover .card-icon {
246
+ background-color: var(--primary-color);
247
+ color: white;
248
+ transform: rotateY(180deg);
249
+ }
250
+
251
+ .feature-card h3 {
252
+ margin-bottom: 1rem;
253
+ }
254
+
255
+ /* How It Works Section */
256
+ .how-it-works {
257
+ padding: 5rem 0;
258
+ background-color: var(--light-color);
259
+ }
260
+
261
+ .how-it-works h2 {
262
+ text-align: center;
263
+ margin-bottom: 3rem;
264
+ }
265
+
266
+ .steps {
267
+ display: grid;
268
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
269
+ gap: 2rem;
270
+ }
271
+
272
+ .step {
273
+ position: relative;
274
+ padding: 2rem;
275
+ background: white;
276
+ border-radius: 16px;
277
+ box-shadow: var(--shadow-md);
278
+ transition: var(--transition);
279
+ text-align: center;
280
+ }
281
+
282
+ .step:hover {
283
+ transform: translateY(-5px);
284
+ box-shadow: var(--shadow-lg);
285
+ }
286
+
287
+ .step-number {
288
+ width: 50px;
289
+ height: 50px;
290
+ background-color: var(--primary-color);
291
+ color: white;
292
+ border-radius: 50%;
293
+ display: flex;
294
+ align-items: center;
295
+ justify-content: center;
296
+ font-weight: bold;
297
+ font-size: 1.2rem;
298
+ margin: 0 auto 1.5rem;
299
+ transition: var(--transition);
300
+ }
301
+
302
+ .step:hover .step-number {
303
+ background-color: var(--accent-color);
304
+ transform: scale(1.1);
305
+ }
306
+
307
+ .step h3 {
308
+ margin-bottom: 1rem;
309
+ }
310
+
311
+ /* Dashboard Styles */
312
+ .dashboard {
313
+ padding: 7rem 0 3rem;
314
+ background-color: #f5f7fa;
315
+ }
316
+
317
+ .dashboard-header {
318
+ display: flex;
319
+ justify-content: space-between;
320
+ align-items: center;
321
+ margin-bottom: 2rem;
322
+ }
323
+
324
+ .dashboard-actions {
325
+ display: flex;
326
+ gap: 1rem;
327
+ }
328
+
329
+ .dashboard-grid {
330
+ display: grid;
331
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
332
+ gap: 1.5rem;
333
+ }
334
+
335
+ .dashboard-card {
336
+ background: white;
337
+ padding: 1.5rem;
338
+ border-radius: 16px;
339
+ box-shadow: var(--shadow-sm);
340
+ transition: var(--transition);
341
+ }
342
+
343
+ .dashboard-card:hover {
344
+ box-shadow: var(--shadow-md);
345
+ transform: translateY(-5px);
346
+ }
347
+
348
+ .dashboard-card.wide {
349
+ grid-column: span 2;
350
+ }
351
+
352
+ .chart-container {
353
+ height: 300px;
354
+ margin-top: 1rem;
355
+ }
356
+
357
+ .data-table {
358
+ margin-top: 1rem;
359
+ overflow-x: auto;
360
+ }
361
+
362
+ .data-table table {
363
+ width: 100%;
364
+ border-collapse: collapse;
365
+ }
366
+
367
+ .data-table th, .data-table td {
368
+ padding: 0.75rem;
369
+ text-align: left;
370
+ border-bottom: 1px solid #eee;
371
+ }
372
+
373
+ .data-table th {
374
+ font-weight: 500;
375
+ color: var(--text-light);
376
+ }
377
+
378
+ .status {
379
+ display: inline-block;
380
+ padding: 0.25rem 0.5rem;
381
+ border-radius: 4px;
382
+ font-size: 0.8rem;
383
+ font-weight: 500;
384
+ }
385
+
386
+ .status.completed {
387
+ background-color: #e8f5e9;
388
+ color: #2e7d32;
389
+ }
390
+
391
+ .status.pending {
392
+ background-color: #fff8e1;
393
+ color: #ff8f00;
394
+ }
395
+
396
+ /* Upload Page Styles */
397
+ .upload {
398
+ padding: 7rem 0 3rem;
399
+ background-color: #f5f7fa;
400
+ }
401
+
402
+ .upload h1 {
403
+ text-align: center;
404
+ margin-bottom: 1rem;
405
+ }
406
+
407
+ .subtitle {
408
+ text-align: center;
409
+ color: var(--text-light);
410
+ margin-bottom: 3rem;
411
+ max-width: 600px;
412
+ margin-left: auto;
413
+ margin-right: auto;
414
+ }
415
+
416
+ .upload-container {
417
+ display: flex;
418
+ gap: 2rem;
419
+ align-items: flex-start;
420
+ margin-bottom: 3rem;
421
+ }
422
+
423
+ @media (max-width: 768px) {
424
+ .upload-container {
425
+ flex-direction: column;
426
+ }
427
+ }
428
+
429
+ .upload-box {
430
+ flex: 1;
431
+ background: white;
432
+ border: 2px dashed #e0e0e0;
433
+ border-radius: 16px;
434
+ padding: 3rem;
435
+ text-align: center;
436
+ transition: var(--transition);
437
+ cursor: pointer;
438
+ }
439
+
440
+ .upload-box:hover {
441
+ border-color: var(--accent-color);
442
+ transform: translateY(-5px);
443
+ }
444
+
445
+ .upload-box i {
446
+ font-size: 3rem;
447
+ color: var(--accent-color);
448
+ margin-bottom: 1rem;
449
+ }
450
+
451
+ .upload-box h3 {
452
+ margin-bottom: 0.5rem;
453
+ }
454
+
455
+ .upload-box p {
456
+ color: var(--text-light);
457
+ margin-bottom: 1.5rem;
458
+ }
459
+
460
+ .file-preview {
461
+ flex: 1;
462
+ background: white;
463
+ border-radius: 16px;
464
+ padding: 2rem;
465
+ box-shadow: var(--shadow-sm);
466
+ }
467
+
468
+ .file-types {
469
+ display: grid;
470
+ grid-template-columns: 1fr 1fr;
471
+ gap: 1rem;
472
+ margin: 1.5rem 0;
473
+ }
474
+
475
+ .file-type {
476
+ display: flex;
477
+ align-items: center;
478
+ gap: 0.5rem;
479
+ padding: 0.75rem;
480
+ background-color: #f5f5f5;
481
+ border-radius: 8px;
482
+ }
483
+
484
+ .file-type i {
485
+ color: var(--primary-color);
486
+ }
487
+
488
+ .file-requirements {
489
+ margin-top: 1.5rem;
490
+ padding-top: 1.5rem;
491
+ border-top: 1px solid #eee;
492
+ }
493
+
494
+ .file-requirements h4 {
495
+ margin-bottom: 0.5rem;
496
+ }
497
+
498
+ .file-requirements ul {
499
+ padding-left: 1.5rem;
500
+ color: var(--text-light);
501
+ }
502
+
503
+ .data-preview {
504
+ background: white;
505
+ border-radius: 16px;
506
+ padding: 2rem;
507
+ box-shadow: var(--shadow-sm);
508
+ }
509
+
510
+ .analysis-actions {
511
+ display: flex;
512
+ gap: 1rem;
513
+ margin-top: 2rem;
514
+ justify-content: center;
515
+ }
516
+
517
+ /* About Page Styles */
518
+ .about-hero {
519
+ padding: 5rem 0;
520
+ background: linear-gradient(135deg, var(--primary-color), var(--dark-color));
521
+ color: white;
522
+ text-align: center;
523
+ }
524
+
525
+ .about-hero h1 {
526
+ color: white;
527
+ font-size: 3rem;
528
+ margin-bottom: 1rem;
529
+ }
530
+
531
+ .about-hero p {
532
+ font-size: 1.25rem;
533
+ max-width: 600px;
534
+ margin: 0 auto;
535
+ }
536
+
537
+ .about-content {
538
+ padding: 5rem 0;
539
+ background-color: white;
540
+ }
541
+
542
+ .about-grid {
543
+ display: grid;
544
+ grid-template-columns: 1fr 1fr;
545
+ gap: 3rem;
546
+ align-items: center;
547
+ }
548
+
549
+ @media (max-width: 768px) {
550
+ .about-grid {
551
+ grid-template-columns: 1fr;
552
+ }
553
+ }
554
+
555
+ .about-text h2 {
556
+ margin-bottom: 1.5rem;
557
+ color: var(--dark-color);
558
+ }
559
+
560
+ .about-text p {
561
+ margin-bottom: 1.5rem;
562
+ color: var(--text-light);
563
+ line-height: 1.8;
564
+ }
565
+
566
+ .about-image {
567
+ border-radius: 16px;
568
+ overflow: hidden;
569
+ box-shadow: var(--shadow-xl);
570
+ }
571
+
572
+ .about-image img {
573
+ width: 100%;
574
+ height: auto;
575
+ display: block;
576
+ }
577
+
578
+ .team {
579
+ padding: 5rem 0;
580
+ background-color: #f5f7fa;
581
+ text-align: center;
582
+ }
583
+
584
+ .team h2 {
585
+ margin-bottom: 3rem;
586
+ }
587
+
588
+ .team-grid {
589
+ display: grid;
590
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
591
+ gap: 2rem;
592
+ }
593
+
594
+ .team-member {
595
+ background: white;
596
+ padding: 2rem;
597
+ border-radius: 16px;
598
+ box-shadow: var(--shadow-sm);
599
+ transition: var(--transition);
600
+ }
601
+
602
+ .team-member:hover {
603
+ transform: translateY(-10px);
604
+ box-shadow: var(--shadow-lg);
605
+ }
606
+
607
+ .member-image {
608
+ width: 150px;
609
+ height: 150px;
610
+ border-radius: 50%;
611
+ overflow: hidden;
612
+ margin: 0 auto 1.5rem;
613
+ border: 5px solid var(--light-color);
614
+ }
615
+
616
+ .member-image img {
617
+ width: 100%;
618
+ height: 100%;
619
+ object-fit: cover;
620
+ }
621
+
622
+ .team-member h3 {
623
+ margin-bottom: 0.5rem;
624
+ }
625
+
626
+ .team-member p {
627
+ color: var(--text-light);
628
+ }
629
  .container {
630
  width: 90%;
631
  max-width: 1200px;
 
946
  color: #bdc3c7;
947
  font-size: 0.9rem;
948
  }
949
+ /* Responsive Styles */
950
  @media (max-width: 768px) {
951
+ .hero h1 {
952
+ font-size: 2rem;
 
953
  }
954
 
955
+ .hero p {
956
+ font-size: 1rem;
 
957
  }
958
 
959
+ .hero-buttons {
960
+ flex-direction: column;
961
  }
962
 
963
+ .dashboard-card.wide {
964
+ grid-column: span 1;
 
965
  }
966
+
967
+ .dashboard-actions {
968
+ flex-direction: column;
969
+ gap: 0.5rem;
970
+ }
971
+ }
upload.html ADDED
@@ -0,0 +1,104 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Upload Data | NASKSOFT</title>
7
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
8
+ <link rel="stylesheet" href="style.css">
9
+ </head>
10
+ <body>
11
+ <custom-navbar></custom-navbar>
12
+
13
+ <main class="upload">
14
+ <div class="container">
15
+ <h1>Analyze Your Excel Data</h1>
16
+ <p class="subtitle">Upload your Excel or CSV file and let our AI generate insights automatically.</p>
17
+
18
+ <div class="upload-container">
19
+ <div class="upload-box" id="dropzone">
20
+ <i class="fas fa-cloud-upload-alt"></i>
21
+ <h3>Drag & Drop Your File Here</h3>
22
+ <p>or</p>
23
+ <button class="btn btn-primary">Browse Files</button>
24
+ <input type="file" id="fileInput" accept=".xlsx, .xls, .csv" hidden>
25
+ </div>
26
+
27
+ <div class="file-preview">
28
+ <h3>Supported Formats</h3>
29
+ <div class="file-types">
30
+ <div class="file-type">
31
+ <i class="fas fa-file-excel"></i>
32
+ <span>Excel (.xlsx, .xls)</span>
33
+ </div>
34
+ <div class="file-type">
35
+ <i class="fas fa-file-csv"></i>
36
+ <span>CSV (.csv)</span>
37
+ </div>
38
+ </div>
39
+
40
+ <div class="file-requirements">
41
+ <h4>Requirements:</h4>
42
+ <ul>
43
+ <li>Maximum file size: 10MB</li>
44
+ <li>First row should contain column headers</li>
45
+ <li>Supported date formats: MM/DD/YYYY, DD/MM/YYYY, YYYY-MM-DD</li>
46
+ </ul>
47
+ </div>
48
+ </div>
49
+ </div>
50
+
51
+ <div class="data-preview">
52
+ <h2>Data Preview</h2>
53
+ <div class="data-table">
54
+ <table>
55
+ <thead>
56
+ <tr>
57
+ <th>Date</th>
58
+ <th>Region</th>
59
+ <th>Product</th>
60
+ <th>Units Sold</th>
61
+ <th>Revenue</th>
62
+ </tr>
63
+ </thead>
64
+ <tbody>
65
+ <tr>
66
+ <td>2023-06-01</td>
67
+ <td>North</td>
68
+ <td>Widget A</td>
69
+ <td>45</td>
70
+ <td>$2,250</td>
71
+ </tr>
72
+ <tr>
73
+ <td>2023-06-02</td>
74
+ <td>South</td>
75
+ <td>Widget B</td>
76
+ <td>32</td>
77
+ <td>$1,920</td>
78
+ </tr>
79
+ <tr>
80
+ <td>2023-06-03</td>
81
+ <td>East</td>
82
+ <td>Widget C</td>
83
+ <td>28</td>
84
+ <td>$1,680</td>
85
+ </tr>
86
+ </tbody>
87
+ </table>
88
+ </div>
89
+
90
+ <div class="analysis-actions">
91
+ <button class="btn btn-primary">Generate Insights</button>
92
+ <button class="btn btn-outline">Edit Structure</button>
93
+ </div>
94
+ </div>
95
+ </div>
96
+ </main>
97
+
98
+ <custom-footer></custom-footer>
99
+
100
+ <script src="components/navbar.js"></script>
101
+ <script src="components/footer.js"></script>
102
+ <script src="script.js"></script>
103
+ </body>
104
+ </html>