Skip to content

Latest commit

Β 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ’Ό PurpleRain TechSafe – Careers Page

Modern, responsive careers website built with React, TypeScript, and Tailwind CSS

React TypeScript Vite Tailwind CSS License


πŸ“‹ Table of Contents


🌟 Overview

PurpleRain TechSafe Careers Page is a modern, responsive website showcasing open positions and company culture. Built with React and TypeScript, it provides a seamless experience for potential candidates to learn about the company and apply for positions.

Live Site: https://purplerain-careers.netlify.app


✨ Features

  • Responsive Design: Mobile-first design that works on all devices
  • Modern UI: Built with Radix UI components and Tailwind CSS
  • Form Handling: Netlify Forms integration for resume submissions
  • Type-Safe: Full TypeScript coverage for reliability
  • Fast Performance: Vite for lightning-fast development and builds
  • Accessible: WCAG-compliant components from Radix UI
  • Dark Mode: Theme support with next-themes
  • Animations: Smooth transitions with tailwindcss-animate

πŸ› οΈ Technology Stack

Frontend

Dev Tools

Deployment

  • Netlify - Hosting and form handling
  • Vercel - Alternative hosting option

πŸš€ Getting Started

Prerequisites

  • Node.js >= 18.0.0
  • npm >= 8.0.0 (or yarn/pnpm)

Installation

  1. Clone the repository

    git clone https://github.com/your-org/purplerain-careers.git
    cd purplerain-careers
  2. Install dependencies

    npm install
  3. Start development server

    npm run dev
  4. Open in browser Navigate to http://localhost:5173


πŸ’» Development

Available Scripts

# Start development server
npm run dev

# Build for production
npm run build

# Preview production build
npm run preview

# Run linter
npm run lint

Development Workflow

  1. Create a feature branch

    git checkout -b feature/my-feature
  2. Make changes and test locally with npm run dev

  3. Run linter to check code quality

    npm run lint
  4. Build to verify no build errors

    npm run build
  5. Commit and push

    git add .
    git commit -m "feat: add new feature"
    git push origin feature/my-feature

πŸ“¦ Deployment

Option 1: Netlify (Recommended)

Method A: Drag and Drop

  1. Build your project

    npm run build
  2. Upload to Netlify

Method B: Git Integration

  1. Push to GitHub/GitLab

    git push origin main
  2. Connect to Netlify

    • Go to Netlify Dashboard
    • Click "Add new site" β†’ "Import an existing project"
    • Select your repository
    • Configure build settings:
      • Build command: npm run build
      • Publish directory: dist
  3. Deploy

    • Netlify automatically deploys on push to main

Configure Custom Domain

  • Go to Site settings β†’ Domain management
  • Add custom domain (e.g., careers.purplerain.tech)
  • Update DNS records as instructed

Option 2: Vercel

  1. Install Vercel CLI

    npm install -g vercel
  2. Deploy

    vercel
  3. Follow prompts to configure project


πŸ“¬ Form Handling

Netlify Forms Integration

The careers page uses Netlify Forms for resume submissions.

Setup

  1. Add netlify attribute to form

    <form name="apply-now" netlify>
      <!-- form fields -->
    </form>
  2. Netlify auto-detects the form on deployment

  3. Configure email notifications

    • Go to Site settings β†’ Forms
    • Click on your form (e.g., "Apply Now")
    • Add email notification under Form notifications

Viewing Submissions

  • Netlify Dashboard: Site β†’ Forms tab
  • Email: Configured notification email
  • Export: Download submissions as CSV

Form Fields

  • Name: Applicant's full name
  • Email: Contact email
  • Phone: Contact number (optional)
  • Position: Job position applying for
  • Resume: File upload (PDF, DOC, DOCX)
  • Cover Letter: Text area (optional)

πŸ“ Project Structure

purplerain-careers/
β”œβ”€β”€ public/                    # Static assets
β”‚   β”œβ”€β”€ logo.png              # Company logo
β”‚   β”œβ”€β”€ logo.avif             # Optimized logo
β”‚   └── _redirects            # Netlify redirects
β”œβ”€β”€ src/                       # Source code
β”‚   β”œβ”€β”€ components/           # React components
β”‚   β”‚   β”œβ”€β”€ ui/              # Reusable UI components
β”‚   β”‚   β”œβ”€β”€ hero-section.tsx
β”‚   β”‚   β”œβ”€β”€ open-roles.tsx
β”‚   β”‚   β”œβ”€β”€ life-at-purplerain.tsx
β”‚   β”‚   β”œβ”€β”€ perks-benefits.tsx
β”‚   β”‚   β”œβ”€β”€ meet-team.tsx
β”‚   β”‚   β”œβ”€β”€ resume-submission.tsx
β”‚   β”‚   β”œβ”€β”€ site-navbar.tsx
β”‚   β”‚   └── footer.tsx
β”‚   β”œβ”€β”€ data/                 # Static data
β”‚   β”‚   β”œβ”€β”€ jobs.ts          # Job listings
β”‚   β”‚   └── team.ts          # Team members
β”‚   β”œβ”€β”€ lib/                  # Utilities
β”‚   β”‚   └── utils.ts         # Helper functions
β”‚   β”œβ”€β”€ App.tsx              # Main app component
β”‚   β”œβ”€β”€ App.css              # App styles
β”‚   └── main.tsx             # Entry point
β”œβ”€β”€ index.html                # HTML template
β”œβ”€β”€ package.json              # Dependencies
β”œβ”€β”€ tsconfig.json             # TypeScript config
β”œβ”€β”€ vite.config.ts            # Vite configuration
β”œβ”€β”€ tailwind.config.js        # Tailwind configuration
β”œβ”€β”€ postcss.config.js         # PostCSS configuration
β”œβ”€β”€ netlify.toml              # Netlify configuration
β”œβ”€β”€ vercel.json               # Vercel configuration
└── README.md                 # This file

🎨 Customization

Adding New Job Listings

Edit src/data/jobs.ts:

export const jobs = [
  {
    id: 1,
    title: "Senior Security Engineer",
    department: "Engineering",
    location: "Remote",
    type: "Full-time",
    description: "Join our security team...",
    requirements: [
      "5+ years experience in cybersecurity",
      "Strong knowledge of network security",
      // ...
    ],
  },
  // Add more jobs...
];

Updating Team Members

Edit src/data/team.ts:

export const team = [
  {
    name: "John Doe",
    role: "CEO & Founder",
    image: "/team/john-doe.jpg",
    bio: "John has 15 years of experience...",
  },
  // Add more team members...
];

Styling

  • Colors: Edit tailwind.config.js to change theme colors
  • Fonts: Update index.html and tailwind.config.js
  • Components: Modify components in src/components/

🀝 Contributing

We welcome contributions! Please follow these guidelines:

Code Style

  • Use TypeScript for all new code
  • Follow ESLint rules: npm run lint
  • Use Prettier for formatting
  • Write descriptive commit messages

Pull Request Process

  1. Create a feature branch from main
  2. Make your changes with clear commits
  3. Run npm run lint and npm run build
  4. Submit PR with description of changes

πŸ”’ Security

  • Form Validation: Client-side validation with Zod
  • Spam Protection: Netlify's built-in spam filtering
  • File Upload: Restricted to PDF, DOC, DOCX formats
  • HTTPS: Enforced on all deployments

πŸ“„ License

Proprietary - All rights reserved by PurpleRain TechSafe


πŸ”— Related Projects


πŸ“ž Support

For questions or issues:


Built with ❀️ by the PurpleRain Team

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages