Home
Softono
a

arthurdanjou

Professional software vendor delivering innovative solutions on the Softono platform. Specialized in both open-source and proprietary software development.

Total Products
1

Software by arthurdanjou

artsite
Open Source

artsite

<div align="center"> # [Arthur Danjou | Portfolio 2024](https://arthurdanjou.fr/) My professional portfolio built with modern Nuxt.js technologies, showcasing projects, skills, and experience. [![Nuxt.js](https://img.shields.io/badge/Nuxt.js-00DC82?style=for-the-badge&logo=nuxt.js&logoColor=white)](https://nuxt.com/) [![Vue.js](https://img.shields.io/badge/Vue.js-4FC08D?style=for-the-badge&logo=vue.js&logoColor=white)](https://vuejs.org/) [![TypeScript](https://img.shields.io/badge/TypeScript-3178C6?style=for-the-badge&logo=typescript&logoColor=white)](https://www.typescriptlang.org/) [![TailwindCSS](https://img.shields.io/badge/Tailwind_CSS-38B2AC?style=for-the-badge&logo=tailwind-css&logoColor=white)](https://tailwindcss.com/) [![Cloudflare](https://img.shields.io/badge/Cloudflare-F38020?style=for-the-badge&logo=cloudflare&logoColor=white)](https://cloudflare.com/) [🌐 Live Demo](https://arthurdanjou.fr/) | [πŸ› Report Bug](https://github.com/ArthurDanjou/artsite/issues) </div> ## πŸ“‹ Table of Contents - [Features](#-features) - [Tech Stack](#️-tech-stack) - [Prerequisites](#-prerequisites) - [Getting Started](#-getting-started) - [Development](#-development) - [Environment Variables](#-environment-variables) - [Project Structure](#-project-structure) - [Integrations](#-integrations) - [Deployment](#-deployment) - [Contributing](#-contributing) - [License](#-license) - [Contact](#-contact) ## ✨ Features - **Responsive Design** - Fully responsive layout that works on all devices - **i18n Support** - Multilanguage content with Nuxt i18n - **Content Management** - Easy content editing with Nuxt Content and Nuxt Studio - **Modern Styling** - Beautiful UI built with Tailwind CSS and SASS - **Performance Optimized** - Fast loading times and SEO optimized - **Analytics** - WakaTime integration to track coding statistics - **Discord Integration** - Real-time Discord status display - **CI/CD** - Automated deployment with NuxtHub ## βš’οΈ Tech Stack - **UI Framework** β†’ [Vue.js 3](https://vuejs.org/) - **Framework** β†’ [Nuxt 3](https://nuxt.com/) - **Content Management** β†’ [Nuxt Content](https://content.nuxtjs.org/) - **Design System** β†’ [NuxtUI](https://ui.nuxt.com/) - **CMS & Editing** β†’ [Nuxt Studio](https://nuxt.studio) - **Language** β†’ [TypeScript](https://www.typescriptlang.org/) - **Deployment** β†’ [NuxtHub](https://hub.nuxt.com/) on [Cloudflare](https://cloudflare.com/) - **Styling** β†’ [Sass](https://sass-lang.com/) & [Tailwind CSS](https://tailwindcss.com/) - **Package Manager** β†’ [Bun](https://bun.sh/) - **Internationalization** β†’ [Nuxt i18n](https://i18n.nuxtjs.org/) - **Database** β†’ [Cloudflare D1](https://developers.cloudflare.com/d1/) (SQLite) - **Composables** β†’ [VueUse](https://vueuse.org/) - **Validation** β†’ [Zod](https://zod.dev/) - **Icons** β†’ [Iconify](https://iconify.design/) ## πŸ“¦ Prerequisites Before you begin, ensure you have the following installed: - **Node.js** (v18 or higher recommended) - **Bun** (latest version) - [Install Bun](https://bun.sh/docs/installation) - **Git** for version control - **Cloudflare Account** (for deployment) ## πŸš€ Getting Started 1. **Clone the repository** ```bash git clone https://github.com/ArthurDanjou/artsite.git cd artsite ``` 2. **Install dependencies** ```bash bun install ``` 3. **Set up environment variables** ```bash cp .env.example .env ``` Then edit `.env` and fill in your configuration values (see [Environment Variables](#-environment-variables) section). 4. **Start the development server** ```bash bun run dev ``` The application will be available at `http://localhost:3000` πŸŽ‰ ## πŸ’» Development ### Available Scripts ```bash # Start development server bun run dev # Build for production bun run build # Preview production build locally bun run preview # Lint code bun run lint # Deploy to Cloudflare bun run deploy # Generate Cloudflare types bun run cf-typegen ``` ### Project Configuration The project uses: - **ESLint** for code linting with stylistic rules (single quotes, no trailing commas) - **TypeScript** for type safety - **Nuxt DevTools** enabled for enhanced development experience ## πŸ” Environment Variables Create a `.env` file in the root directory with the following variables: ```env # GitHub Studio Integration (for content management) STUDIO_GITHUB_CLIENT_ID=your_github_client_id STUDIO_GITHUB_CLIENT_SECRET=your_github_client_secret # Keep this secret! Never commit to version control # Discord Integration (runtime config - keep private) NUXT_DISCORD_USER_ID=your_discord_user_id # Private # WakaTime Integration (for coding statistics - keep private) NUXT_WAKATIME_USER_ID=your_wakatime_user_id # Private NUXT_WAKATIME_CODING=your_coding_stats_api # Private NUXT_WAKATIME_EDITORS=your_editors_stats_api # Private NUXT_WAKATIME_LANGUAGES=your_languages_stats_api # Private NUXT_WAKATIME_OS=your_os_stats_api # Private # Status Page URL NUXT_STATUS_PAGE=your_status_page_url ``` > **Note:** Not all variables are required for basic development. The site will work without integrations, but some features may be disabled. > **Security:** Never commit your `.env` file or expose sensitive credentials like `STUDIO_GITHUB_CLIENT_SECRET`. Keep all API keys and secrets secure. ## πŸ“‚ Project Structure ``` artsite/ β”œβ”€β”€ app/ # Application source code β”‚ β”œβ”€β”€ assets/ # Static assets (CSS, images) β”‚ β”œβ”€β”€ components/ # Vue components β”‚ β”‚ β”œβ”€β”€ content/ # Content-specific components β”‚ β”‚ └── home/ # Home page components β”‚ β”œβ”€β”€ composables/ # Vue composables β”‚ β”œβ”€β”€ pages/ # Application pages (file-based routing) β”‚ β”‚ β”œβ”€β”€ index.vue # Home page β”‚ β”‚ β”œβ”€β”€ projects/ # Projects section β”‚ β”‚ β”œβ”€β”€ hobbies.vue # Hobbies page β”‚ β”‚ β”œβ”€β”€ uses.vue # Uses page β”‚ β”‚ └── ecosystem.vue # Ecosystem page β”‚ β”œβ”€β”€ app.config.ts # App configuration β”‚ β”œβ”€β”€ app.vue # Root app component β”‚ └── error.vue # Error page β”œβ”€β”€ content/ # Content files (Markdown & JSON) β”‚ β”œβ”€β”€ education/ # Education content β”‚ β”‚ β”œβ”€β”€ bachelor.md # Bachelor's degree information β”‚ β”‚ β”œβ”€β”€ m1.md # Master's 1st year information β”‚ β”‚ └── m2.md # Master's 2nd year information β”‚ β”œβ”€β”€ experiences/ # Professional experience content β”‚ β”‚ β”œβ”€β”€ artdanjproduction.md β”‚ β”‚ β”œβ”€β”€ erisium.md β”‚ β”‚ β”œβ”€β”€ hackathon-cnd.md β”‚ β”‚ β”œβ”€β”€ picard.md β”‚ β”‚ └── sevetys.md β”‚ β”œβ”€β”€ projects/ # Project portfolio content β”‚ β”‚ β”œβ”€β”€ artchat.md β”‚ β”‚ β”œβ”€β”€ arthome.md β”‚ β”‚ β”œβ”€β”€ artlab.md β”‚ β”‚ β”œβ”€β”€ artstudies.md β”‚ β”‚ β”œβ”€β”€ bikes-glm.md β”‚ β”‚ β”œβ”€β”€ breast-cancer.md β”‚ β”‚ β”œβ”€β”€ dropout-reduces-underfitting.md β”‚ β”‚ β”œβ”€β”€ loan-ml.md β”‚ β”‚ β”œβ”€β”€ monte-carlo-project.md β”‚ β”‚ β”œβ”€β”€ schelling-segregation-model.md β”‚ β”‚ └── sevetys.md β”‚ β”œβ”€β”€ contact.json # Contact information data β”‚ β”œβ”€β”€ hobbies.md # Hobbies page content β”‚ β”œβ”€β”€ index.md # Home page content β”‚ β”œβ”€β”€ languages.json # Programming languages data β”‚ β”œβ”€β”€ skills.json # Skills and expertise data β”‚ └── uses.md # Tools and software used β”œβ”€β”€ public/ # Public static files β”œβ”€β”€ server/ # Server API routes and middleware β”‚ β”œβ”€β”€ api/ # API endpoints β”‚ └── routes/ # Server routes β”œβ”€β”€ types/ # TypeScript type definitions β”œβ”€β”€ .env.example # Example environment variables β”œβ”€β”€ content.config.ts # Content module configuration β”œβ”€β”€ nuxt.config.ts # Nuxt configuration β”œβ”€β”€ package.json # Dependencies and scripts β”œβ”€β”€ tsconfig.json # TypeScript configuration β”œβ”€β”€ wrangler.jsonc # Cloudflare Workers configuration └── README.md # Project documentation ``` ## πŸ”Œ Integrations - **WakaTime** - Track coding time and statistics - **Discord** - Display real-time Discord status - **Nuxt Studio** - Headless CMS for content management - **Nuxt i18n** - Internationalization support - **NuxtHub** - CI/CD and deployment platform - **Cloudflare D1** - Serverless SQL database ## 🚒 Deployment This project is configured to deploy on Cloudflare using NuxtHub. ### Deploy to Production 1. **Prerequisites** - Cloudflare account - Wrangler CLI configured (`wrangler login`) - NuxtHub project created 2. **Deploy** ```bash bun run deploy ``` This will: - Generate Cloudflare types - Build the application - Deploy to Cloudflare Workers ### Automatic Deployments The project is set up with NuxtHub for automatic deployments on push to the main branch. ## 🀝 Contributing Contributions are welcome! Here's how you can help: 1. **Fork the repository** 2. **Create a feature branch** ```bash git checkout -b feature/amazing-feature ``` 3. **Make your changes** 4. **Commit your changes** ```bash git commit -m 'Add some amazing feature' ``` 5. **Push to the branch** ```bash git push origin feature/amazing-feature ``` 6. **Open a Pull Request** ### Development Guidelines - Follow the existing code style (enforced by ESLint) - Use TypeScript for type safety - Write descriptive commit messages - Test your changes locally before submitting - Update documentation if needed ## πŸ“„ License [MIT](./LICENSE) Β© Arthur Danjou ## πŸ“¬ Contact - Website: [arthurdanjou.fr](https://arthurdanjou.fr) - GitHub: [@ArthurDanjou](https://github.com/ArthurDanjou) - LinkedIn: [Arthur Danjou](https://linkedin.com/in/arthurdanjou)

Traditional CMS Static Site Generators
36 Github Stars