Skip to content

Commit

Permalink
Merge pull request #1 from ImJustLucas/refactor
Browse files Browse the repository at this point in the history
♻️ Refactor with brand new portfolio
  • Loading branch information
ImJustLucas authored Oct 30, 2024
2 parents 7c4b5ea + b299765 commit 3805cc4
Show file tree
Hide file tree
Showing 106 changed files with 4,610 additions and 5,282 deletions.
38 changes: 15 additions & 23 deletions .eslintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,11 @@
"es2021": true
},
"extends": [
"next",
"next/core-web-vitals",
"eslint:recommended",
"plugin:react/recommended",
"plugin:@typescript-eslint/recommended",
"plugin:prettier/recommended",
"next/core-web-vitals"
"plugin:prettier/recommended"
],
"parser": "@typescript-eslint/parser",
"parserOptions": {
Expand All @@ -26,41 +25,34 @@
"error",
{
"groups": [
/* Style imports */
["^.+\\.?(css)$", "^styled-components$"],

/* React imports */
["^react", "^@react"],

/* Next imports */
["^next"],

/* Imports starting with @ */
["^@"],

/* Parent imports. Put .. last */
["^\\.\\.(?!/?$)", "^\\.\\./?$"],

/* Other relative imports. Put same-folder imports and . last */
["^\\./(?=.*/)(?!/?$)", "^\\.(?!/?$)", "^\\./?$"]
["^.+\\.?(css)$"],
["^react", "^@react", "^next"],
["^[a-z]"],
["^@/"],
[
"^\\.\\.(?!/?$)",
"^\\.\\./?$",
"^\\./(?=.*/)(?!/?$)",
"^\\.(?!/?$)",
"^\\./?$"
]
]
}
],
"simple-import-sort/exports": "error",
"react/jsx-filename-extension": [1, { "extensions": [".tsx", ".ts"] }],
"react/jsx-props-no-spreading": [0],
"react/jsx-props-no-spreading": 0,
"react/no-unknown-property": ["error", { "ignore": ["jsx"] }],
"react/react-in-jsx-scope": "off",
"react/jsx-indent-props": ["error", 2],
"import/extensions": [0],
"semi": ["error", "always"],
"quotes": ["error", "double"],
"no-console": 0,
"no-control-regex": 0,
"react/prop-types": "off",
"prettier/prettier": ["error", { "endOfLine": "auto" }]
},
"overrides": [
// Only uses Testing Library lint rules in test files
{
"files": [
"**/__tests__/**/*.[jt]s?(x)",
Expand Down
40 changes: 40 additions & 0 deletions .github/workflows/continuous-integration.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: Continuous Integration

on: [push]

env:
NODE_OPTIONS: "--max_old_space_size=4096"

jobs:
build:
name: Build, lint, and test on Node ${{ matrix.node }} and ${{ matrix.os }}

runs-on: ${{ matrix.os }}
strategy:
matrix:
node: ["18.x", "20.x"]
os: [ubuntu-latest]

steps:
- name: Checkout repo
uses: actions/checkout@v4

- name: Use pnpm
uses: pnpm/action-setup@v4
with:
version: "latest"

- name: Use Node ${{ matrix.node }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
cache: "pnpm"

- name: Install Dependencies
run: pnpm i

- name: Lint
run: pnpm lint

- name: Build Packages
run: pnpm build
2 changes: 1 addition & 1 deletion .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

npx lint-staged
# npx lint-staged

# npm run test
13 changes: 13 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"cSpell.words": [
"antoinek",
"chibi",
"envoyer",
"hésitez",
"internationaux",
"passent",
"Pssst",
"recruteurs",
"septembre"
]
}
88 changes: 87 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,87 @@
# 🚧 Currently working on it! 🚧
# imjustlucas.dev

This repository contains the codebase for the **imjustlucas.dev** project, a web application using Next.js, Shadcn UI, and Tailwind CSS to deliver a highly interactive and customizable user experience. Built with a modern front-end stack, this project leverages the power of TypeScript, ESLint, and PostCSS to ensure code quality and maintainability.

## Table of Contents

- [imjustlucas.dev](#imjustlucasdev)
- [Table of Contents](#table-of-contents)
- [Getting Started](#getting-started)
- [Prerequisites](#prerequisites)
- [Installation](#installation)
- [Running the Project](#running-the-project)
- [Technologies Used](#technologies-used)
- [Project Scripts](#project-scripts)
- [License](#license)

---

## Getting Started

### Prerequisites

Make sure you have Node.js installed on your system, preferably the latest LTS version.

### Installation

1. Clone this repository:

```bash
git clone https://github.com/imjustlucas/imjustlucas.dev.git
cd imjustlucas.dev
```

2. Install dependencies using your preferred package manager (pnpm recommended):

```bash
pnpm install
```

### Running the Project

To start the development server:

```bash
pnpm run dev
```

For production builds:

```bash
pnpm run build
pnpm run start
```

Lint your code:

```bash
pnpm run lint
```

---

## Technologies Used

- **Next.js (v15)**: Framework for React applications with built-in routing and optimization.
- **React (v19 RC)**: JavaScript library for building user interfaces.
- **Tailwind CSS**: Utility-first CSS framework for rapid UI development.
- **Shadcn UI**: Accessible, unstyled components for building high-quality UIs.
- **TypeScript**: Static type-checking for JavaScript, enhancing code reliability.
- **ESLint & Prettier**: For consistent and high-quality code.

## Project Scripts

| Script | Description |
| ------- | ------------------------------------- |
| `dev` | Runs the development server |
| `build` | Builds the application for production |
| `start` | Starts the production build |
| `lint` | Lints the codebase using ESLint |

---

## License

This project is open-source and free to use under the MIT License. Feel free to reuse, modify, and distribute the code and design as you wish.

> **Note**: Contributions and forks are always welcome. Let’s build something great together!
19 changes: 0 additions & 19 deletions __tests__/index.test.tsx

This file was deleted.

25 changes: 25 additions & 0 deletions app/ClientLayout.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
"use client";

import { useMobileMenu } from "@/contexts/menu-mobile.context";

import { Sidebar } from "../components/sidebar/Sidebar";

interface ClientLayoutProps {
children: React.ReactNode;
}

export default function ClientLayout({ children }: ClientLayoutProps) {
const { isOpen } = useMobileMenu();
return (
<div className="p-3 bg-background w-screen h-screen flex relative gap-3 select-none ">
<Sidebar />
<div
className={`bg-primary-foreground w-full h-full rounded-lg p-4 overflow-y-scroll ${
isOpen ? "blur-sm" : ""
}`}
>
{children}
</div>
</div>
);
}
53 changes: 53 additions & 0 deletions app/contact/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
import {
TypographyH2,
TypographyH3,
TypographyP,
} from "@/components/typography";

export default function What() {
return (
<div className="md:w-2/3 w-full">
<TypographyH2 border={false}>Contact me</TypographyH2>
<TypographyP>
If you want to contact me, you can do so via my Linkedin DMs, I will
respond as quickly as possible
</TypographyP>
<TypographyH3>Inspiration</TypographyH3>
<TypographyP>
The design is not mine basically, it is largely inspired by the sites of{" "}
<a
href="https://github.com/phineas/phineas.io"
target="_blank"
rel="noreferrer"
className="underline"
>
phineas
</a>{" "}
&{" "}
<a
href="https://antoinek.fr"
target="_blank"
rel="noreferrer"
className="underline"
>
antoinek
</a>
, big s/o to them
</TypographyP>
<TypographyH3>VIE</TypographyH3>
<TypographyP>
🇬🇧 If international recruiters come through here, I&apos;m looking of a
VIE for September 2025 do not hesitate to send me a message
<br />
🇫🇷 Si des recruteurs internationaux passent par ici, je recherche un VIE
pour septembre 2025 ! N&apos;hésitez pas à m&apos;envoyer un message
</TypographyP>
<TypographyP>Preferred destination:</TypographyP>
<ol className="list-decimal pl-6">
<li>North America</li>
<li>Asia (Japan, South Korea)</li>
<li>Oceania (Australia, New Zealand)</li>
</ol>
</div>
);
}
34 changes: 34 additions & 0 deletions app/experiences/config/timeline.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
interface TimelineEvent {
date: string;
title: string;
contract: string;
link: string;
description: string;
}

export const timeline: TimelineEvent[] = [
{
date: "2023 - Today",
title: "Favikon - Fullstack Developer",
contract: "Work-study contract",
link: "https://favikon.com",
description:
"Creation of an innovative SaaS, to optimize influencer marketing strategies 💜",
},
{
date: "2021 - 2023",
title: "The Tricks Network - Fullstack Developer",
contract: "Work-study contract",
link: "https://thetricksnetwork.com",
description:
"Creation of a social network intended for extreme sports on web and mobile platforms 🤙",
},
{
date: "2021",
title: "TNYTR",
contract: "Internship contract",
link: "https://tony.tnytr.me/",
description:
"First professional experience, creation of a website for a cascadevent",
},
];
Loading

0 comments on commit 3805cc4

Please sign in to comment.