Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 4 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,16 @@
# Said MOUNAIM
# Ayodele Toluwani

Mounaim.dev is a personal project built with Next.js and TailwindCSS.
personal project built with Next.js and TailwindCSS.

## Getting Started

Clone the repository: `git clone https://github.com/saidMounaim/mounaim.dev.git`
Clone the repository: `git clone https://github.com/devdele/Ayodele-Toluwani.git`
Install dependencies:

```
npm install
```

Create a .env file:

```
EMAIL_USER=
EMAIL_PASS=
```

## Customize Information

Update your details in the `/constants/index.ts` file.
Expand All @@ -28,4 +21,4 @@ Update your details in the `/constants/index.ts` file.
- [TailwindCSS](https://tailwindcss.com/)
- [TypeScript](https://www.typescriptlang.org/)
- [Shadcn/ui](https://ui.shadcn.com/)
- [Nodemailer](https://www.nodemailer.com/)
-
Binary file removed app/favicon.ico
Binary file not shown.
28 changes: 14 additions & 14 deletions app/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,48 +15,48 @@ const geistMono = Geist_Mono({
});

export const metadata: Metadata = {
title: "Said MOUNAIM",
title: "Ayodele Toluwani - Portfolio",
description:
"Said MOUNAIM - Full stack javaScript developer. Personal Website.",
"Ayodele Toluwani - Full stack javaScript developer. Personal Website.",
icons: [
{
rel: "icon",
type: "image/svg+xml",
url: "/favicon.svg",
url: "/Tolu.jpg",
media: "(prefers-color-scheme: light)",
},
{
rel: "icon",
type: "image/svg+xml",
url: "/favicon-dark.svg",
url: "/Tolu.jpg",
media: "(prefers-color-scheme: dark)",
},
],
metadataBase: new URL("https://mounaim.dev"),
metadataBase: new URL("https://ayodele-toluwani.vercel.app/"),
openGraph: {
title: "Said MOUNAIM - Portfolio",
title: "Ayodele Toluwani - Portfolio",
description:
"Said MOUNAIM - Full stack javaScript developer. Personal Website.",
url: "https://mounaim.dev",
siteName: "Said MOUNAIM Portfolio",
"Ayodele Toluwani - Full stack javaScript developer. Personal Website.",
url: "https://ayodele-toluwani.vercel.app/",
siteName: "Ayodele Toluwani Portfolio",
images: [
{
url: "/og-image.png",
url: "/Tolu.jpg",
width: 1200,
height: 630,
alt: "Said MOUNAIM Portfolio",
alt: "Ayodele Toluwani Portfolio",
},
],
locale: "en_US",
type: "website",
},
twitter: {
card: "summary_large_image",
title: "Said MOUNAIM - Portfolio",
title: "Ayodele Toluwani - Portfolio",
description:
"Full Stack JavaScript Developer showcasing projects and skills",
images: ["/og-image.png"],
creator: "@saidmounaim",

creator: "@toluwani_dev",
},
robots: {
index: true,
Expand Down
11 changes: 2 additions & 9 deletions components/shared/profile-card.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,8 @@ import { Github, Linkedin, Mail } from "lucide-react";
import TwitterX from "./TwitterX";
import { infos } from "@/constants";
import Image from "next/image";
import { useState } from "react";
import { ContactModal } from "./contact-modal";

export function ProfileCard() {
const [isModalOpen, setIsModalOpen] = useState<boolean>(false);
const classNameButton =
"text-gray-600 dark:text-gray-400 hover:text-teal-500 dark:hover:text-teal-400";
return (
Expand Down Expand Up @@ -38,15 +35,15 @@ export function ProfileCard() {
{infos.shortBio}
</p>
</div>

{/*
<div className="mt-6">
<Button
className="w-full bg-gradient-to-r from-teal-500 to-cyan-500 hover:from-teal-600 hover:to-cyan-600 text-white border-0"
onClick={() => setIsModalOpen(true)}
>
Contact Me
</Button>
</div>
</div> */}

<div className="flex justify-center space-x-4 mt-6">
<a href={infos.github} target="_blank" rel="noopener noreferrer">
Expand All @@ -72,10 +69,6 @@ export function ProfileCard() {
</a>
</div>
</CardContent>
<ContactModal
isOpen={isModalOpen}
onClose={() => setIsModalOpen(false)}
/>
</Card>
);
}
72 changes: 44 additions & 28 deletions constants/index.ts
Original file line number Diff line number Diff line change
@@ -1,51 +1,67 @@
export const bio =
"My name is Said Mounaim, Passionate developer with experience in building responsive web applications using JavaScript, React.js, Next.js, Node.js, and various other libraries and frameworks.";
"My name is Ayodele Toluwani, Passionate developer with experience in building responsive web applications using JavaScript, React.js, Next.js, Node.js, and various other libraries and frameworks.";

export const skills = [
{ name: "Frontend", items: ["React", "Next.js", "Tailwind CSS"] },
{ name: "Backend", items: ["Node.js", "Express", "Nest.js"] },
{ name: "Database", items: ["MongoDB", "PostgreSQL", "MySQL"] },
{ name: "CMS & Headless CMS", items: ["WordPress", "Strapi.js"] },
{ name: "Frontend", items: ["React", "Next.js", "Tailwind CSS", "Bootstrap", ] },
{ name: "Backend", items: ["Node.js", "Express", "PHP", "Python"] },
{ name: "Database", items: ["MongoDB", "Firebase", "MySQL"] },
{ name: "Version Control", items: ["Git", "GitHub"] },
{ name: "Other", items: ["ShadCN", "Tanstack React-Query", "Framer Motion", "Redux"] },

];

export const projects = [
{
title: "Resume Scan AI",
title: "TruxPoint",
description:
"AI-powered Resume Analyzer using Next.js, Prisma, Inngest, AgentKit, and OpenAI.",
techs: ["Next.js", "OpenAI"],
link: "https://resume-scan-ai-seven.vercel.app/",
"A web3 landing page for a meme coin project built with Next.js, TailwindCSS, and Framer Motion.",
techs: ["Next.js", "TailwindCSS", "Framer Motion"],
link: "https://trux-nine.vercel.app/",
},
{
title: "AI Travel Planner",
title: "Student Feedback System",
description:
"A modern travel planner using Next.js, TailwindCSS, Prisma, Open AI, and Clerk.",
techs: ["Next.js", "OpenAI", "Clerk"],
link: "https://travelplan-sm.vercel.app/",
"A modern feedback collection system using next.js, tailwindcss, ShadCN UI and firebase.",
techs: ["Next.js", "Firebase"],
link: "https://student-feedback-project.vercel.app/",
},
// {
// title: "Link Loop",
// description:
// "Link Loop is a clean Linktree-style web app built with Next.js, Prisma, Better Auth, and ShadCN/UI.",
// techs: ["Next.js", "Better Auth"],
// link: "https://link-loop-share.vercel.app/",
// },
{
title: "Link Loop",
title: "Portfolio Website",
description:
"Link Loop is a clean Linktree-style web app built with Next.js, Prisma, Better Auth, and ShadCN/UI.",
techs: ["Next.js", "Better Auth"],
link: "https://link-loop-share.vercel.app/",
"A portfolio website built with Astro.js and TailwindCSS for a senior software engineer.",
techs: ["Astro.js", "TailwindCSS"],
link: "https://www.ojolowo.com/",
},
{
title: "Club Marathon",
{
title: "Usmakoye",
description:
"A landing page for a plumbing and construction company built with Next.js, shadCN and TailwindCSS.",
techs: ["Next.js", "shadCN", "TailwindCSS"],
link: "https://usmakoye-plumbing-services.vercel.app",
},
{
title: "Lensconnect",
description:
"A dynamic and animated landing page for a running club, built with HTML5, CSS3, JavaScript, and GSAP for smooth scroll-based animations.",
techs: ["JavaScript", "GSAP"],
link: "https://clubmarathon.fr/",
"A startup company that connects Photographers and Clients built with Next.js, shadCN and TailwindCSS.",
techs: ["Next.js", "shadCN", "TailwindCSS"],
link: "https://lensconnectwaitlist.vercel.app",
},
];

export const infos = {
fullName: "Said MOUNAIM",
fullName: "Ayodele Toluwani",
status: "Full Stack JavaScript Developer",
shortBio: "Passionate about building scalable web applications.",
avatar: "/avatar.png",
mail: "saidmounaim00@gmail.com",
linkedin: "https://www.linkedin.com/in/said-mounaim/",
x: "https://x.com/said_mounaim",
github: "https://github.com/saidMounaim",
avatar: "/Tolu.jpg",
mail: "ayodeletoluwani71@gmail.com",
linkedin: "https://www.linkedin.com/in/toluwani-ayodele-05699324a/",
x: "https://x.com/Toluwani_Dev",
github: "https://github.com/devdele",
};
Loading