Skip to content

revolutionxk/portfolio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Revolution Portfolio

Version Next.js TypeScript MUI TailwindCSS Rust

A modern and interactive portfolio built with cutting-edge technology. This project demonstrates my skills and projects, highlighting my experience in full-stack development.

Portfolio Preview

✨ Features

  • Responsive Design: Perfect adaptation for any device
  • Light/Dark Theme: Theme system for better user experience
  • Internationalization: Support for multiple languages (Portuguese and English)
  • Interactive Terminal: A simulated terminal for unique site interaction
  • Admin Dashboard: Administrative panel to manage blog content
  • API Integration: Integration with GitHub to display projects and Spotify to show current music
  • Rust Backend: Robust API built with Rust and Axum
  • PostgreSQL Database: Efficient storage for posts and users
  • Smooth Animations: Transitions and animations using Framer Motion

🛠️ Technologies

Frontend

Backend

Development Tools

🚀 Quick Start

Prerequisites

  • Node.js (version 18 or higher)
  • Bun (optional, but recommended)
  • Rust (for the backend)
  • PostgreSQL

Installation

  1. Clone the repository:
git clone https://github.com/irevolutiondev/portfolio.git
cd portfolio
  1. Install dependencies:
bun install
# or
npm install
  1. Configure environment variables: Create a .env.local file in the project root based on .env.example

  2. Run the frontend:

bun run dev
# or
npm run dev
  1. Configure and run the backend:
cd backend
cargo shuttle run

📋 Available Scripts

  • dev: Start the Next.js development server
  • build: Build the project for production
  • start: Start the production server
  • lint:next: Run Next.js linter
  • run: Start all services (Next.js, Vercel CLI, Backend)
  • format: Format code with Biome
  • lint: Run linter with Biome
  • check: Check and fix code issues
  • test: Run tests with Jest
  • e2e:headless: Run end-to-end tests with Playwright
  • e2e:ui: Run end-to-end tests with UI

📁 Project Structure

src/
├── @types/        # TypeScript type definitions
├── app/           # Application pages (Next.js App Router)
├── components/    # Reusable components
├── constants/     # Constants and configurations
├── features/      # Specific features
├── helpers/       # Helper functions
├── hooks/         # Custom React hooks
├── i18n/          # Internationalization configurations
├── lib/           # Libraries and utilities
├── providers/     # Context providers
├── redux/         # Global state management
├── templates/     # Templates and layouts
├── theme/         # Theme configurations
backend/
├── migrations/    # Database migrations
├── src/           # Rust backend source code
    ├── domain/    # Business logic
    ├── handlers/  # Request handlers
    ├── infra/     # Infrastructure and configurations
    └── utils/     # Utilities

🌐 Main Pages

  • Home: Personal presentation and technologies
  • Projects: Display of GitHub projects
  • Blog: Articles and posts
  • Terminal: Interactive terminal interface
  • Dashboard: Administrative area to manage content

📱 Responsive Features

The portfolio is fully responsive, with specific layouts for:

  • Desktop
  • Tablet
  • Mobile devices

🧪 Testing

Run unit tests:

bun test
# or
npm test

Run end-to-end tests:

bun run e2e:headless
# or
npm run e2e:headless

🔗 Deployment

This project is configured for deployment on Vercel. The Rust backend is hosted through Shuttle.rs.

👤 Author

Revolution