-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
387 lines (373 loc) · 45.9 KB
/
index.html
File metadata and controls
387 lines (373 loc) · 45.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
<!doctype html>
<html class="scroll-smooth">
<head>
<title>Ahmed Barhoumi - Portfolio</title>
<meta
name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1, user-scalable=no"
/>
<link rel="stylesheet" href="css/style.css" />
<link rel="shortcut icon" href="images/terminals.png" />
<link href='https://fonts.googleapis.com/css?family=Monoton' rel='stylesheet' type='text/css'>
<script src="https://cdn.tailwindcss.com"></script>
</head>
<body class="bg-[#181A1B]">
<div class="overflow-wrap">
<div id="pt" class="canvas"></div>
<section id="home" class="flex items-center">
<div class='h-[200px] w-[100vw] flex flex-col justify-around sm:h-[300px] lg:h-[450px]'>
<p class='text-[28px] sm:text-[40px] lg:text-[55px] leading-relaxed non-selectable'> Hi, I'm <span class='name'> Ahmed Barhoumi </span> ,</br> a Software Developer.</p>
<div class="wrapper">
<a class="cta" href="#about">
<span class='leading-[35px] sm:leading-[47px] lg:leading-[55px]'>VIEW MY WORK</span>
<span class="arrow">
<svg class="w-[35px] h-[30px] sm:w-[55px] sm:h-[40px] lg:w-[66px] lg:h-[43px]" viewBox="0 0 66 43" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="arrow" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path class="one" d="M40.1543933,3.89485454 L43.9763149,0.139296592 C44.1708311,-0.0518420739 44.4826329,-0.0518571125 44.6771675,0.139262789 L65.6916134,20.7848311 C66.0855801,21.1718824 66.0911863,21.8050225 65.704135,22.1989893 C65.7000188,22.2031791 65.6958657,22.2073326 65.6916762,22.2114492 L44.677098,42.8607841 C44.4825957,43.0519059 44.1708242,43.0519358 43.9762853,42.8608513 L40.1545186,39.1069479 C39.9575152,38.9134427 39.9546793,38.5968729 40.1481845,38.3998695 C40.1502893,38.3977268 40.1524132,38.395603 40.1545562,38.3934985 L56.9937789,21.8567812 C57.1908028,21.6632968 57.193672,21.3467273 57.0001876,21.1497035 C56.9980647,21.1475418 56.9959223,21.1453995 56.9937605,21.1432767 L40.1545208,4.60825197 C39.9574869,4.41477773 39.9546013,4.09820839 40.1480756,3.90117456 C40.1501626,3.89904911 40.1522686,3.89694235 40.1543933,3.89485454 Z" fill="#FFFFFF"></path>
<path class="two" d="M20.1543933,3.89485454 L23.9763149,0.139296592 C24.1708311,-0.0518420739 24.4826329,-0.0518571125 24.6771675,0.139262789 L45.6916134,20.7848311 C46.0855801,21.1718824 46.0911863,21.8050225 45.704135,22.1989893 C45.7000188,22.2031791 45.6958657,22.2073326 45.6916762,22.2114492 L24.677098,42.8607841 C24.4825957,43.0519059 24.1708242,43.0519358 23.9762853,42.8608513 L20.1545186,39.1069479 C19.9575152,38.9134427 19.9546793,38.5968729 20.1481845,38.3998695 C20.1502893,38.3977268 20.1524132,38.395603 20.1545562,38.3934985 L36.9937789,21.8567812 C37.1908028,21.6632968 37.193672,21.3467273 37.0001876,21.1497035 C36.9980647,21.1475418 36.9959223,21.1453995 36.9937605,21.1432767 L20.1545208,4.60825197 C19.9574869,4.41477773 19.9546013,4.09820839 20.1480756,3.90117456 C20.1501626,3.89904911 20.1522686,3.89694235 20.1543933,3.89485454 Z" fill="#FFFFFF"></path>
<path class="three" d="M0.154393339,3.89485454 L3.97631488,0.139296592 C4.17083111,-0.0518420739 4.48263286,-0.0518571125 4.67716753,0.139262789 L25.6916134,20.7848311 C26.0855801,21.1718824 26.0911863,21.8050225 25.704135,22.1989893 C25.7000188,22.2031791 25.6958657,22.2073326 25.6916762,22.2114492 L4.67709797,42.8607841 C4.48259567,43.0519059 4.17082418,43.0519358 3.97628526,42.8608513 L0.154518591,39.1069479 C-0.0424848215,38.9134427 -0.0453206733,38.5968729 0.148184538,38.3998695 C0.150289256,38.3977268 0.152413239,38.395603 0.154556228,38.3934985 L16.9937789,21.8567812 C17.1908028,21.6632968 17.193672,21.3467273 17.0001876,21.1497035 C16.9980647,21.1475418 16.9959223,21.1453995 16.9937605,21.1432767 L0.15452076,4.60825197 C-0.0425130651,4.41477773 -0.0453986756,4.09820839 0.148075568,3.90117456 C0.150162624,3.89904911 0.152268631,3.89694235 0.154393339,3.89485454 Z" fill="#FFFFFF"></path>
</g>
</svg>
</span>
</a>
</div>
</div>
</section>
</div>
<div class="mx-auto min-h-screen max-w-screen-xl px-6 bg-[#181A1B] py-12 font-sans md:px-12 md:py-20 lg:px-24 lg:py-0">
<a href="#content" class="absolute left-0 top-0 block -translate-x-full rounded bg-gradient-to-br from-teal-400 via-blue-500 to-purple-600 px-4 py-3 text-sm font-bold uppercase tracking-widest text-white focus-visible:translate-x-0">Skip to Content</a>
<div class="lg:flex lg:justify-between lg:gap-4">
<header class="lg:sticky lg:top-0 lg:flex lg:max-h-screen lg:w-1/2 lg:flex-col lg:justify-between lg:py-24">
<div>
<h1 class="text-4xl font-bold tracking-tight text-slate-200 sm:text-5xl"><a href="#about">Ahmed Barhoumi</a></h1>
<h2 class="mt-3 text-lg font-medium tracking-tight text-slate-200 sm:text-xl">Software Developer</h2>
<nav class="nav hidden lg:block" aria-label="In-page jump links">
<ul class="mt-16 w-max">
<li><a class="group flex items-center py-3 active" href="#about"><span class="nav-indicator mr-4 h-px w-8 bg-slate-600 transition-all group-hover:w-16 group-hover:bg-slate-200 group-focus-visible:w-16 group-focus-visible:bg-slate-200 motion-reduce:transition-none"></span><span class="nav-text text-xs font-bold uppercase tracking-widest text-slate-500 group-hover:text-slate-200 group-focus-visible:text-slate-200">About</span></a></li>
<li><a class="group flex items-center py-3 " href="#experience"><span class="nav-indicator mr-4 h-px w-8 bg-slate-600 transition-all group-hover:w-16 group-hover:bg-slate-200 group-focus-visible:w-16 group-focus-visible:bg-slate-200 motion-reduce:transition-none"></span><span class="nav-text text-xs font-bold uppercase tracking-widest text-slate-500 group-hover:text-slate-200 group-focus-visible:text-slate-200">Experience</span></a></li>
<li><a class="group flex items-center py-3 " href="#projects"><span class="nav-indicator mr-4 h-px w-8 bg-slate-600 transition-all group-hover:w-16 group-hover:bg-slate-200 group-focus-visible:w-16 group-focus-visible:bg-slate-200 motion-reduce:transition-none"></span><span class="nav-text text-xs font-bold uppercase tracking-widest text-slate-500 group-hover:text-slate-200 group-focus-visible:text-slate-200">Projects</span></a></li>
</ul>
</nav>
</div>
<ul class="ml-1 mt-8 flex justify-center items-center" aria-label="Social media">
<li class="mr-5 text-xs shrink-0">
<a class="block hover:text-slate-200" href="https://github.com/banoni-dev" target="_blank" rel="noreferrer noopener" aria-label="GitHub (opens in a new tab)" title="GitHub">
<span class="sr-only">GitHub</span>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" class="h-6 w-6" aria-hidden="true">
<path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"></path>
</svg>
</a>
</li>
<li class="mr-5 text-xs shrink-0">
<a class="block hover:text-slate-200" href="https://linkedin.com/in/ahmedbarhoumi/" target="_blank" rel="noreferrer noopener" aria-label="LinkedIn (opens in a new tab)" title="LinkedIn">
<span class="sr-only">LinkedIn</span>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" class="h-6 w-6" aria-hidden="true">
<path d="M20.5 2h-17A1.5 1.5 0 002 3.5v17A1.5 1.5 0 003.5 22h17a1.5 1.5 0 001.5-1.5v-17A1.5 1.5 0 0020.5 2zM8 19H5v-9h3zM6.5 8.25A1.75 1.75 0 118.3 6.5a1.78 1.78 0 01-1.8 1.75zM19 19h-3v-4.74c0-1.42-.6-1.93-1.38-1.93A1.74 1.74 0 0013 14.19a.66.66 0 000 .14V19h-3v-9h2.9v1.3a3.11 3.11 0 012.7-1.4c1.55 0 3.36.86 3.36 3.66z"></path>
</svg>
</a>
</li>
</ul>
</header>
<main id="content" class="pt-24 lg:w-1/2 lg:py-24">
<section id="about" class="mb-16 scroll-mt-16 md:mb-24 lg:mb-36 lg:scroll-mt-24" aria-label="About me">
<div class="sticky top-0 z-20 -mx-6 mb-4 w-screen bg-slate-900/75 px-6 py-5 backdrop-blur md:-mx-12 md:px-12 lg:sr-only lg:relative lg:top-auto lg:mx-auto lg:w-full lg:px-0 lg:py-0 lg:opacity-0">
<h2 class="text-sm font-bold uppercase tracking-widest text-slate-200 lg:sr-only">About</h2>
</div>
<div>
<p class="mb-4 text-[18px]">
As a Full Stack Developer, I am deeply
<span class="group/korok inline-flex lg:font-medium lg:text-slate-200">
<span class="sr-only">passionate</span>
<span class="group-hover/korok:text-[#6225e6] transition duration-75 group-hover/korok:-translate-y-px delay-[50ms]" aria-hidden="true">p</span>
<span class="group-hover/korok:text-[#6225e6] transition duration-75 group-hover/korok:-translate-y-px delay-[75ms]" aria-hidden="true">a</span>
<span class="group-hover/korok:text-[#6225e6] transition duration-75 group-hover/korok:-translate-y-px delay-[100ms]" aria-hidden="true">s</span>
<span class="group-hover/korok:text-[#6225e6] transition duration-75 group-hover/korok:-translate-y-px delay-[125ms]" aria-hidden="true">s</span>
<span class="group-hover/korok:text-[#6225e6] transition duration-75 group-hover/korok:-translate-y-px delay-[150ms]" aria-hidden="true">i</span>
<span class="group-hover/korok:text-[#fbc638] transition duration-75 group-hover/korok:-translate-y-px delay-[175ms]" aria-hidden="true">o</span>
<span class="group-hover/korok:text-[#fbc638] transition duration-75 group-hover/korok:-translate-y-px delay-[200ms]" aria-hidden="true">n</span>
<span class="group-hover/korok:text-[#fbc638] transition duration-75 group-hover/korok:-translate-y-px delay-[225ms]" aria-hidden="true">a</span>
<span class="group-hover/korok:text-[#fbc638] transition duration-75 group-hover/korok:-translate-y-px delay-[250ms]" aria-hidden="true">t</span>
<span class="group-hover/korok:text-[#fbc638] transition duration-75 group-hover/korok:-translate-y-px delay-[275ms]" aria-hidden="true">e</span>
</span> about programming. My days are filled with
<span class="group/korok inline-flex lg:font-medium lg:text-slate-200">
<span class="sr-only">coding</span>
<span class="group-hover/korok:text-[#fbc638] transition duration-75 group-hover/korok:-translate-y-px delay-[50ms]" aria-hidden="true">c</span>
<span class="group-hover/korok:text-[#fbc638] transition duration-75 group-hover/korok:-translate-y-px delay-[75ms]" aria-hidden="true">o</span>
<span class="group-hover/korok:text-[#fbc638] transition duration-75 group-hover/korok:-translate-y-px delay-[100ms]" aria-hidden="true">d</span>
<span class="group-hover/korok:text-[#6225e6] transition duration-75 group-hover/korok:-translate-y-px delay-[125ms]" aria-hidden="true">i</span>
<span class="group-hover/korok:text-[#6225e6] transition duration-75 group-hover/korok:-translate-y-px delay-[150ms]" aria-hidden="true">n</span>
<span class="group-hover/korok:text-[#6225e6] transition duration-75 group-hover/korok:-translate-y-px delay-[175ms]" aria-hidden="true">g</span>
</span>, exploring new technologies, and constantly pushing the boundaries of what's possible.
I have a particular passion for
<span class="group/korok inline-flex lg:font-medium lg:text-slate-200">
<span class="sr-only">competitive programming</span>
<span class="group-hover/korok:text-[#6225e6] transition duration-75 group-hover/korok:-translate-y-px delay-[50ms]" aria-hidden="true">c</span>
<span class="group-hover/korok:text-[#6225e6] transition duration-75 group-hover/korok:-translate-y-px delay-[75ms]" aria-hidden="true">o</span>
<span class="group-hover/korok:text-[#6225e6] transition duration-75 group-hover/korok:-translate-y-px delay-[100ms]" aria-hidden="true">m</span>
<span class="group-hover/korok:text-[#6225e6] transition duration-75 group-hover/korok:-translate-y-px delay-[125ms]" aria-hidden="true">p</span>
<span class="group-hover/korok:text-[#6225e6] transition duration-75 group-hover/korok:-translate-y-px delay-[150ms]" aria-hidden="true">e</span>
<span class="group-hover/korok:text-[#6225e6] transition duration-75 group-hover/korok:-translate-y-px delay-[175ms]" aria-hidden="true">t</span>
<span class="group-hover/korok:text-[#6225e6] transition duration-75 group-hover/korok:-translate-y-px delay-[200ms]" aria-hidden="true">i</span>
<span class="group-hover/korok:text-[#6225e6] transition duration-75 group-hover/korok:-translate-y-px delay-[225ms]" aria-hidden="true">t</span>
<span class="group-hover/korok:text-[#6225e6] transition duration-75 group-hover/korok:-translate-y-px delay-[250ms]" aria-hidden="true">i</span>
<span class="group-hover/korok:text-[#6225e6] transition duration-75 group-hover/korok:-translate-y-px delay-[275ms]" aria-hidden="true">v</span>
<span class="group-hover/korok:text-[#6225e6] transition duration-75 group-hover/korok:-translate-y-px delay-[300ms]" aria-hidden="true">e</span>
<span class="group-hover/korok:text-[#fbc638] transition duration-75 group-hover/korok:-translate-y-px delay-[325ms]" aria-hidden="true"> </span>
<span class="group-hover/korok:text-[#fbc638] transition duration-75 group-hover/korok:-translate-y-px delay-[350ms]" aria-hidden="true">p</span>
<span class="group-hover/korok:text-[#fbc638] transition duration-75 group-hover/korok:-translate-y-px delay-[375ms]" aria-hidden="true">r</span>
<span class="group-hover/korok:text-[#fbc638] transition duration-75 group-hover/korok:-translate-y-px delay-[400ms]" aria-hidden="true">o</span>
<span class="group-hover/korok:text-[#fbc638] transition duration-75 group-hover/korok:-translate-y-px delay-[425ms]" aria-hidden="true">g</span>
<span class="group-hover/korok:text-[#fbc638] transition duration-75 group-hover/korok:-translate-y-px delay-[450ms]" aria-hidden="true">r</span>
<span class="group-hover/korok:text-[#fbc638] transition duration-75 group-hover/korok:-translate-y-px delay-[475ms]" aria-hidden="true">a</span>
<span class="group-hover/korok:text-[#fbc638] transition duration-75 group-hover/korok:-translate-y-px delay-[500ms]" aria-hidden="true">m</span>
<span class="group-hover/korok:text-[#fbc638] transition duration-75 group-hover/korok:-translate-y-px delay-[525ms]" aria-hidden="true">m</span>
<span class="group-hover/korok:text-[#fbc638] transition duration-75 group-hover/korok:-translate-y-px delay-[550ms]" aria-hidden="true">i</span>
<span class="group-hover/korok:text-[#fbc638] transition duration-75 group-hover/korok:-translate-y-px delay-[575ms]" aria-hidden="true">n</span>
<span class="group-hover/korok:text-[#fbc638] transition duration-75 group-hover/korok:-translate-y-px delay-[600ms]" aria-hidden="true">g</span>
</span>.
</p>
<p class="mb-4 text-[18px]">
My proficiency extends to architecting,
<span class="group/korok inline-flex lg:font-medium lg:text-slate-200">
<span class="sr-only">developing</span>
<span class="group-hover/korok:text-[#fbc638] transition duration-75 group-hover/korok:-translate-y-px delay-[50ms]" aria-hidden="true">d</span>
<span class="group-hover/korok:text-[#fbc638] transition duration-75 group-hover/korok:-translate-y-px delay-[75ms]" aria-hidden="true">e</span>
<span class="group-hover/korok:text-[#fbc638] transition duration-75 group-hover/korok:-translate-y-px delay-[100ms]" aria-hidden="true">v</span>
<span class="group-hover/korok:text-[#fbc638] transition duration-75 group-hover/korok:-translate-y-px delay-[125ms]" aria-hidden="true">e</span>
<span class="group-hover/korok:text-[#fbc638] transition duration-75 group-hover/korok:-translate-y-px delay-[150ms]" aria-hidden="true">l</span>
<span class="group-hover/korok:text-[#6225e6] transition duration-75 group-hover/korok:-translate-y-px delay-[175ms]" aria-hidden="true">o</span>
<span class="group-hover/korok:text-[#6225e6] transition duration-75 group-hover/korok:-translate-y-px delay-[200ms]" aria-hidden="true">p</span>
<span class="group-hover/korok:text-[#6225e6] transition duration-75 group-hover/korok:-translate-y-px delay-[225ms]" aria-hidden="true">i</span>
<span class="group-hover/korok:text-[#6225e6] transition duration-75 group-hover/korok:-translate-y-px delay-[250ms]" aria-hidden="true">n</span>
<span class="group-hover/korok:text-[#6225e6] transition duration-75 group-hover/korok:-translate-y-px delay-[275ms]" aria-hidden="true">g</span>
</span>
and deploying innovative software solutions. I am dedicated to continuously learning and growing in this ever-evolving field, driven by an insatiable curiosity and a love for
<span class="group/korok inline-flex lg:font-medium lg:text-slate-200">
<span class="sr-only">technology</span>
<span class="group-hover/korok:text-[#6225e6] transition duration-75 group-hover/korok:-translate-y-px delay-[50ms]" aria-hidden="true">t</span>
<span class="group-hover/korok:text-[#6225e6] transition duration-75 group-hover/korok:-translate-y-px delay-[75ms]" aria-hidden="true">e</span>
<span class="group-hover/korok:text-[#6225e6] transition duration-75 group-hover/korok:-translate-y-px delay-[100ms]" aria-hidden="true">c</span>
<span class="group-hover/korok:text-[#6225e6] transition duration-75 group-hover/korok:-translate-y-px delay-[125ms]" aria-hidden="true">h</span>
<span class="group-hover/korok:text-[#6225e6] transition duration-75 group-hover/korok:-translate-y-px delay-[150ms]" aria-hidden="true">n</span>
<span class="group-hover/korok:text-[#6225e6] transition duration-75 group-hover/korok:-translate-y-px delay-[175ms]" aria-hidden="true">o</span>
<span class="group-hover/korok:text-[#fbc638] transition duration-75 group-hover/korok:-translate-y-px delay-[200ms]" aria-hidden="true">l</span>
<span class="group-hover/korok:text-[#fbc638] transition duration-75 group-hover/korok:-translate-y-px delay-[225ms]" aria-hidden="true">o</span>
<span class="group-hover/korok:text-[#fbc638] transition duration-75 group-hover/korok:-translate-y-px delay-[250ms]" aria-hidden="true">g</span>
<span class="group-hover/korok:text-[#fbc638] transition duration-75 group-hover/korok:-translate-y-px delay-[275ms]" aria-hidden="true">y</span>
</span>.
</p>
</div>
</section>
<section id="experience" class="mb-16 scroll-mt-16 md:mb-24 lg:mb-36 lg:scroll-mt-24" aria-label="Work experience">
<div class="sticky top-0 z-20 -mx-6 mb-4 w-screen bg-slate-900/75 px-6 py-5 backdrop-blur md:-mx-12 md:px-12 lg:sr-only lg:relative lg:top-auto lg:mx-auto lg:w-full lg:px-0 lg:py-0 lg:opacity-0">
<h2 class="text-sm font-bold uppercase tracking-widest text-slate-200 lg:sr-only">Experience</h2>
</div>
<div>
<ol class="group/list">
<!-- Internship at EITECH -->
<li class="mb-12">
<div class="group relative grid pb-1 transition-all sm:grid-cols-12 sm:gap-12 md:gap-6 lg:hover:!opacity-100 lg:group-hover/list:opacity-50">
<div class="absolute -inset-x-4 -inset-y-4 z-0 hidden rounded-md transition motion-reduce:transition-none lg:-inset-x-6 lg:block lg:group-hover:bg-slate-800/50 lg:group-hover:shadow-[inset_0_1px_0_0_rgba(148,163,184,0.1)] lg:group-hover:drop-shadow-lg"></div>
<header class="z-10 mb-2 mt-1 text-xs font-semibold uppercase tracking-wide text-slate-500 sm:col-span-4">Feb 2025 – Jun 2025</header>
<div class="z-10 sm:col-span-8">
<h3 class="font-medium leading-snug text-slate-200">
<div>
<a href="https://eitech.com.tn" class="inline-flex items-baseline font-medium leading-tight text-slate-200 hover:text-teal-300 focus-visible:text-teal-300 group/link text-base" target="_blank" rel="noreferrer noopener">
<span class="absolute -inset-x-4 -inset-y-2.5 hidden rounded md:-inset-x-6 md:-inset-y-4 lg:block"></span>
<span>
Full Stack Developer Intern ·
<span class="inline-block">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="inline-block h-4 w-4 shrink-0 transition-transform group-hover/link:-translate-y-1 group-hover/link:translate-x-1 group-focus-visible/link:-translate-y-1 group-focus-visible/link:translate-x-1 motion-reduce:transition-none ml-1 translate-y-px" aria-hidden="true">
<path fill-rule="evenodd" d="M5.22 14.78a.75.75 0 001.06 0l7.22-7.22v5.69a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75h-7.5a.75.75 0 000 1.5h5.69l-7.22 7.22a.75.75 0 000 1.06z" clip-rule="evenodd"></path>
</svg>
</span>
</span>
</a>
</div>
</h3>
<p class="mt-2 text-sm leading-normal">Designed and developed <strong>EI-PAY</strong>, a modular web platform for licence and subscription-based digital products.</p>
<p class="mt-2 text-sm leading-normal">Created a responsive <strong>admin dashboard frontend</strong> using Vue.js and Tailwind CSS, and a separate <strong>example website frontend</strong> in Next.js to simulate end-user product interaction and purchase flows.</p>
<p class="mt-2 text-sm leading-normal">Integrated the <strong>Konnect API</strong> for localized online payments, supporting secure transactions and automating license/subscription lifecycles.</p>
<p class="mt-2 text-sm leading-normal">Implemented authentication and protection features including <strong>API keys</strong>, <strong>CAPTCHA</strong>, and <strong>IP blacklisting</strong> to enhance security.</p>
<p class="mt-2 text-sm leading-normal">Exposed RESTful APIs and built a <strong>comprehensive developer documentation portal</strong>; deployed the system with Docker and automated scripts.</p>
<ul class="mt-2 flex flex-wrap" aria-label="Technologies used">
<li class="mr-1.5 mt-2"><div class="flex items-center rounded-full bg-teal-400/10 px-3 py-1 text-xs font-medium leading-5 text-teal-300 ">.NET</div></li>
<li class="mr-1.5 mt-2"><div class="flex items-center rounded-full bg-teal-400/10 px-3 py-1 text-xs font-medium leading-5 text-teal-300 ">Vue</div></li>
<li class="mr-1.5 mt-2"><div class="flex items-center rounded-full bg-teal-400/10 px-3 py-1 text-xs font-medium leading-5 text-teal-300 ">Nextjs</div></li>
<li class="mr-1.5 mt-2"><div class="flex items-center rounded-full bg-teal-400/10 px-3 py-1 text-xs font-medium leading-5 text-teal-300 ">MariaDB</div></li>
</ul>
</div>
</div>
</li>
<!-- Mentor Assistant -->
<li class="mb-12">
<div class="group relative grid pb-1 transition-all sm:grid-cols-12 sm:gap-12 md:gap-6 lg:hover:!opacity-100 lg:group-hover/list:opacity-50">
<div class="absolute -inset-x-4 -inset-y-4 z-0 hidden rounded-md transition motion-reduce:transition-none lg:-inset-x-6 lg:block lg:group-hover:bg-slate-800/50 lg:group-hover:shadow-[inset_0_1px_0_0_rgba(148,163,184,0.1)] lg:group-hover:drop-shadow-lg"></div>
<header class="z-10 mb-2 mt-1 text-xs font-semibold uppercase tracking-wide text-slate-500 sm:col-span-4" aria-label="Dec 2022 to Present">Dec 2022 — Present</header>
<div class="z-10 sm:col-span-8">
<h3 class="font-medium leading-snug text-slate-200">
<div>
<a class="inline-flex items-baseline font-medium leading-tight text-slate-200 hover:text-teal-300 focus-visible:text-teal-300 group/link text-base" target="_blank" rel="noreferrer noopener">
<span class="absolute -inset-x-4 -inset-y-2.5 hidden rounded md:-inset-x-6 md:-inset-y-4 lg:block"></span>
<span>
Mentor Assistant ·
<span class="inline-block">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="inline-block h-4 w-4 shrink-0 transition-transform group-hover/link:-translate-y-1 group-hover/link:translate-x-1 group-focus-visible/link:-translate-y-1 group-focus-visible/link:translate-x-1 motion-reduce:transition-none ml-1 translate-y-px" aria-hidden="true">
<path fill-rule="evenodd" d="M5.22 14.78a.75.75 0 001.06 0l7.22-7.22v5.69a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75h-7.5a.75.75 0 000 1.5h5.69l-7.22 7.22a.75.75 0 000 1.06z" clip-rule="evenodd"></path>
</svg>
</span>
</span>
</a>
</div>
</h3>
<p class="mt-2 text-sm leading-normal">Provided guidance and support to over 8 students across various technology stacks, aiding them in successfully completing their end-of-term projects with a 100% completion rate.</p>
<p class="mt-2 text-sm leading-normal">Received consistent positive feedback from students for exceptional mentorship quality, substantially advancing their academic and professional development. My guidance bolstered students’ achievements and cultivated a supportive environment for their growth and success.</p>
<ul class="mt-2 flex flex-wrap" aria-label="Technologies used">
<li class="mr-1.5 mt-2"><div class="flex items-center rounded-full bg-teal-400/10 px-3 py-1 text-xs font-medium leading-5 text-teal-300 ">JavaScript</div></li>
<li class="mr-1.5 mt-2"><div class="flex items-center rounded-full bg-teal-400/10 px-3 py-1 text-xs font-medium leading-5 text-teal-300 ">TypeScript</div></li>
<li class="mr-1.5 mt-2"><div class="flex items-center rounded-full bg-teal-400/10 px-3 py-1 text-xs font-medium leading-5 text-teal-300 ">React</div></li>
<li class="mr-1.5 mt-2"><div class="flex items-center rounded-full bg-teal-400/10 px-3 py-1 text-xs font-medium leading-5 text-teal-300 ">Firebase</div></li>
<li class="mr-1.5 mt-2"><div class="flex items-center rounded-full bg-teal-400/10 px-3 py-1 text-xs font-medium leading-5 text-teal-300 ">Python</div></li>
<li class="mr-1.5 mt-2"><div class="flex items-center rounded-full bg-teal-400/10 px-3 py-1 text-xs font-medium leading-5 text-teal-300 ">Redux</div></li>
<li class="mr-1.5 mt-2"><div class="flex items-center rounded-full bg-teal-400/10 px-3 py-1 text-xs font-medium leading-5 text-teal-300 ">Next.js</div></li>
<li class="mr-1.5 mt-2"><div class="flex items-center rounded-full bg-teal-400/10 px-3 py-1 text-xs font-medium leading-5 text-teal-300 ">tailwind CSS</div></li>
<li class="mr-1.5 mt-2"><div class="flex items-center rounded-full bg-teal-400/10 px-3 py-1 text-xs font-medium leading-5 text-teal-300 ">Express</div></li>
</ul>
</div>
</div>
</li>
<!-- Freelance Developer -->
</ol>
</div>
</section>
<section id="projects" class="mb-16 scroll-mt-16 md:mb-24 lg:mb-36 lg:scroll-mt-24" aria-label="Selected projects">
<div class="sticky top-0 z-20 -mx-6 mb-4 w-screen bg-slate-900/75 px-6 py-5 backdrop-blur md:-mx-12 md:px-12 lg:sr-only lg:relative lg:top-auto lg:mx-auto lg:w-full lg:px-0 lg:py-0 lg:opacity-0">
<h2 class="text-sm font-bold uppercase tracking-widest text-slate-200 lg:sr-only">Projects</h2>
</div>
<div>
<ul class="group/list">
<li class="mb-12">
<div class="group relative grid gap-12 pb-1 transition-all sm:grid-cols-12 sm:gap-12 md:gap-6 lg:hover:!opacity-100 lg:group-hover/list:opacity-50">
<div class="absolute -inset-x-4 -inset-y-4 z-0 hidden rounded-md transition motion-reduce:transition-none lg:-inset-x-6 lg:block lg:group-hover:bg-slate-800/50 lg:group-hover:shadow-[inset_0_1px_0_0_rgba(148,163,184,0.1)] lg:group-hover:drop-shadow-lg"></div>
<div class="z-10 sm:order-2 sm:col-span-8">
<h3>
<a class="inline-flex items-baseline font-medium leading-tight text-slate-200 hover:text-teal-300 focus-visible:text-teal-300 group/link text-base" href="#" target="_blank" rel="noreferrer noopener">
<span>
Invoice App <!-- -->
</span>
</a>
</h3>
<p class="mt-2 text-sm leading-normal">Developed a full-stack Invoice App web application to streamline the selling of services and invoice management. Built with React, TypeScript, and Tailwind CSS, the platform includes secure user authentication, a dynamic service catalog, real-time interactions, and an admin-friendly dashboard for managing sales and services.</p>
<ul class="mt-2 flex flex-wrap" aria-label="Technologies used:">
<li class="mr-1.5 mt-2">
<div class="flex items-center rounded-full bg-teal-400/10 px-3 py-1 text-xs font-medium leading-5 text-teal-300 ">Next.js</div>
</li>
<li class="mr-1.5 mt-2">
<div class="flex items-center rounded-full bg-teal-400/10 px-3 py-1 text-xs font-medium leading-5 text-teal-300 ">Supabase</div>
</li>
<li class="mr-1.5 mt-2">
<div class="flex items-center rounded-full bg-teal-400/10 px-3 py-1 text-xs font-medium leading-5 text-teal-300 ">Tailwind CSS</div>
</li>
</ul>
</div>
<div class="sm:order-1 sm:col-span-4 flex flex-col items-center justify-center sm:translate-y-1">
<img alt="GSM Web Application" loading="lazy" width="400" height="100" decoding="async" data-nimg="1" class="rounded border-2 border-slate-200/10 transition group-hover:border-slate-200/30" style="color:transparent" src="images/invoice-app.png"/>
<div class="mt-2 flex flex-col h-[60px] justify-around items-center space-x-4">
<a href="https://invoice-app-ten-fawn.vercel.app/" class="flex items-center text-[13px] hover:underline" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="inline-block h-5 w-5 shrink-0 transition-transform group-hover/link:-translate-y-1 group-hover/link:translate-x-1 group-focus-visible/link:-translate-y-1 group-focus-visible/link:translate-x-1 motion-reduce:transition-none ml-1 translate-y-px" aria-hidden="true">
<path fill-rule="evenodd" d="M5.22 14.78a.75.75 0 001.06 0l7.22-7.22v5.69a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75h-7.5a.75.75 0 000 1.5h5.69l-7.22 7.22a.75.75 0 000 1.06z" clip-rule="evenodd"></path>
</svg>
Demo
</a>
<a href="https://github.com/banoni-dev/invoice-app" class="flex items-center text-[13px] hover:underline" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" class="h-4 w-4 mr-1" viewBox="0 0 16 16">
<path d="M8 .198a8 8 0 00-2.535 15.59c.4.074.547-.174.547-.387 0-.19-.007-.693-.011-1.36-2.226.484-2.698-1.073-2.698-1.073-.364-.924-.89-1.17-.89-1.17-.727-.497.055-.487.055-.487.803.056 1.225.825 1.225.825.715 1.223 1.872.87 2.327.665.073-.517.28-.87.508-1.07-1.776-.202-3.644-.888-3.644-3.95 0-.872.31-1.586.822-2.145-.083-.202-.356-1.016.078-2.12 0 0 .672-.216 2.2.82a7.68 7.68 0 012.003-.27 7.69 7.69 0 012.003.27c1.527-1.036 2.199-.82 2.199-.82.435 1.104.162 1.918.079 2.12.512.56.822 1.273.822 2.145 0 3.07-1.869 3.746-3.65 3.942.288.248.543.736.543 1.485 0 1.072-.01 1.937-.01 2.2 0 .215.146.462.552.384A8.003 8.003 0 008 .198z"/>
</svg>
Code Source
</a>
</div>
</div>
</div>
</li>
<li class="mb-12">
<div class="group relative grid gap-12 pb-1 transition-all sm:grid-cols-12 sm:gap-12 md:gap-6 lg:hover:!opacity-100 lg:group-hover/list:opacity-50">
<div class="absolute -inset-x-4 -inset-y-4 z-0 hidden rounded-md transition motion-reduce:transition-none lg:-inset-x-6 lg:block lg:group-hover:bg-slate-800/50 lg:group-hover:shadow-[inset_0_1px_0_0_rgba(148,163,184,0.1)] lg:group-hover:drop-shadow-lg"></div>
<div class="z-10 sm:order-2 sm:col-span-8">
<h3>
<a class="inline-flex items-baseline font-medium leading-tight text-slate-200 hover:text-teal-300 focus-visible:text-teal-300 group/link text-base" href="#" target="_blank" rel="noreferrer noopener">
<span>
GSM Web Application<!-- -->
<span class="inline-block">
for Sell Services
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="inline-block h-4 w-4 shrink-0 transition-transform group-hover/link:-translate-y-1 group-hover/link:translate-x-1 group-focus-visible/link:-translate-y-1 group-focus-visible/link:translate-x-1 motion-reduce:transition-none ml-1 translate-y-px" aria-hidden="true">
<path fill-rule="evenodd" d="M5.22 14.78a.75.75 0 001.06 0l7.22-7.22v5.69a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75h-7.5a.75.75 0 000 1.5h5.69l-7.22 7.22a.75.75 0 000 1.06z" clip-rule="evenodd"></path>
</svg>
</span>
</span>
</a>
</h3>
<p class="mt-2 text-sm leading-normal">Developed a GSM web application to streamline the selling of services. Features include secure user authentication, dynamic service catalog, real-time notifications, and an admin dashboard for managing sales and services.</p>
<ul class="mt-2 flex flex-wrap" aria-label="Technologies used:">
<li class="mr-1.5 mt-2">
<div class="flex items-center rounded-full bg-teal-400/10 px-3 py-1 text-xs font-medium leading-5 text-teal-300 ">Next.js</div>
</li>
<li class="mr-1.5 mt-2">
<div class="flex items-center rounded-full bg-teal-400/10 px-3 py-1 text-xs font-medium leading-5 text-teal-300 ">Node</div>
</li>
<li class="mr-1.5 mt-2">
<div class="flex items-center rounded-full bg-teal-400/10 px-3 py-1 text-xs font-medium leading-5 text-teal-300 ">Express</div>
</li>
<li class="mr-1.5 mt-2">
<div class="flex items-center rounded-full bg-teal-400/10 px-3 py-1 text-xs font-medium leading-5 text-teal-300 ">MongoDB</div>
</li>
<li class="mr-1.5 mt-2">
<div class="flex items-center rounded-full bg-teal-400/10 px-3 py-1 text-xs font-medium leading-5 text-teal-300 ">Tailwind CSS</div>
</li>
</ul>
</div>
<div class="sm:order-1 sm:col-span-4 flex flex-col items-center justify-center sm:translate-y-1">
<img alt="GSM Web Application" loading="lazy" width="400" height="100" decoding="async" data-nimg="1" class="rounded border-2 border-slate-200/10 transition group-hover:border-slate-200/30" style="color:transparent" src="images/gsm.png"/>
<div class="mt-2 flex flex-col h-[60px] justify-around items-center space-x-4">
<a href="https://g-s-m.vercel.app/" class="flex items-center text-[13px] hover:underline" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="inline-block h-5 w-5 shrink-0 transition-transform group-hover/link:-translate-y-1 group-hover/link:translate-x-1 group-focus-visible/link:-translate-y-1 group-focus-visible/link:translate-x-1 motion-reduce:transition-none ml-1 translate-y-px" aria-hidden="true">
<path fill-rule="evenodd" d="M5.22 14.78a.75.75 0 001.06 0l7.22-7.22v5.69a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75h-7.5a.75.75 0 000 1.5h5.69l-7.22 7.22a.75.75 0 000 1.06z" clip-rule="evenodd"></path>
</svg>
Demo
</a>
<a href="https://github.com/banoni-dev/g-s-m" class="flex items-center text-[13px] hover:underline" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" class="h-4 w-4 mr-1" viewBox="0 0 16 16">
<path d="M8 .198a8 8 0 00-2.535 15.59c.4.074.547-.174.547-.387 0-.19-.007-.693-.011-1.36-2.226.484-2.698-1.073-2.698-1.073-.364-.924-.89-1.17-.89-1.17-.727-.497.055-.487.055-.487.803.056 1.225.825 1.225.825.715 1.223 1.872.87 2.327.665.073-.517.28-.87.508-1.07-1.776-.202-3.644-.888-3.644-3.95 0-.872.31-1.586.822-2.145-.083-.202-.356-1.016.078-2.12 0 0 .672-.216 2.2.82a7.68 7.68 0 012.003-.27 7.69 7.69 0 012.003.27c1.527-1.036 2.199-.82 2.199-.82.435 1.104.162 1.918.079 2.12.512.56.822 1.273.822 2.145 0 3.07-1.869 3.746-3.65 3.942.288.248.543.736.543 1.485 0 1.072-.01 1.937-.01 2.2 0 .215.146.462.552.384A8.003 8.003 0 008 .198z"/>
</svg>
Code Source
</a>
</div>
</div>
</div>
</li>
</ul>
<div class="mt-12">
<a class="inline-flex items-center font-medium leading-tight text-slate-200 font-semibold text-slate-200 group" aria-label="View Full Project Archive" href="https://github.com/banoni-dev?tab=repositories" target="_blank">
<span>
<span class="border-b border-transparent pb-px transition group-hover:border-teal-300 motion-reduce:transition-none">
View Full Project<!-- -->
</span>
<span class="whitespace-nowrap">
<span class="border-b border-transparent pb-px transition group-hover:border-teal-300 motion-reduce:transition-none">Archive</span>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="ml-1 inline-block h-4 w-4 shrink-0 -translate-y-px transition-transform group-hover:translate-x-2 group-focus-visible:translate-x-2 motion-reduce:transition-none" aria-hidden="true">
<path fill-rule="evenodd" d="M3 10a.75.75 0 01.75-.75h10.638L10.23 5.29a.75.75 0 111.04-1.08l5.5 5.25a.75.75 0 010 1.08l-5.5 5.25a.75.75 0 11-1.04-1.08l4.158-3.96H3.75A.75.75 0 013 10z" clip-rule="evenodd"></path>
</svg>
</span>
</span>
</a>
</div>
</div>
</section>
</main>
</div>
</div>
</body>
<style>
</style>
<script src="scripts/pt.min.js"></script>
<script src="scripts/canvas.js"></script>
</html>