Files
auditly/constants.ts

208 lines
9.8 KiB
TypeScript

import { Employee, Report, Submission, FaqItem, CompanyReport } from './types';
// URL Configuration - reads from environment variables with fallbacks
export const SITE_URL = import.meta.env.VITE_SITE_URL || 'http://localhost:5173';
// API Base URL - auto-detect development vs production
const isLocalhost = typeof window !== 'undefined' &&
(window.location.hostname === 'localhost' || window.location.hostname === '127.0.0.1');
// Use Firebase Functions emulator in development, production functions in production
export const API_URL = isLocalhost
? 'http://127.0.0.1:5002/auditly-c0027/us-central1' // Firebase Functions Emulator
: 'https://your-project.cloudfunctions.net'; // Production Firebase Functions
// Log URL configuration in development
if (import.meta.env.DEV) {
console.log('🌐 Frontend URL Configuration:');
console.log(` SITE_URL: ${SITE_URL}`);
console.log(` API_URL: ${API_URL}`);
}
export const EMPLOYEES: Employee[] = [
{ id: 'AG', name: 'Alex Green', initials: 'AG', email: 'alex.green@zitlac.com', department: 'Influencer Marketing', role: 'Influencer Coordinator & Business Development Outreach' },
{ id: 'MB', name: 'Michael Brown', initials: 'MB', email: 'michael.brown@zitlac.com', department: 'Engineering', role: 'Senior Developer' },
{ id: 'KT', name: 'Kevin Taylor', initials: 'KT', email: 'kevin.taylor@zitlac.com', department: 'Marketing', role: 'Marketing Manager' },
{ id: 'LR', name: 'Laura Robinson', initials: 'LR', email: 'laura.robinson@zitlac.com', department: 'HR', role: 'HR Manager', isOwner: true },
{ id: 'DS', name: 'David Stone', initials: 'DS', email: 'david.stone@zitlac.com', department: 'Sales', role: 'Sales Representative' },
{ id: 'SR', name: 'Samantha Reed', initials: 'SR', email: 'samantha.reed@zitlac.com', department: 'Operations', role: 'Operations Specialist' },
];
export const REPORT_DATA: Report = {
employeeId: 'AG',
department: 'Influencer Marketing',
role: 'Influencer Coordinator & Business Development Outreach',
roleAndOutput: {
responsibilities: 'Recruiting influencers, onboarding, campaign support, business development.',
clarityOnRole: '10/10 - Feels very clear on responsibilities.',
selfRatedOutput: '7/10 - Indicates decent performance but room to grow.',
recurringTasks: 'Influencer outreach, onboarding, communications.',
},
insights: {
personalityTraits: 'Loyal, well-liked by influencers, eager to grow, client-facing interest.',
psychologicalIndicators: [
'Scores high on optimism and external motivation.',
'Shows ambition but lacks self-discipline in execution.',
'Displays a desire for recognition and community; seeks more appreciation.',
],
selfAwareness: 'High - acknowledges weaknesses like lateness and disorganization.',
emotionalResponses: 'Frustrated by campaign disorganization; would prefer closer collaboration.',
growthDesire: 'Interested in becoming more client-facing and shifting toward biz dev.',
},
strengths: [
'Builds strong relationships with influencers.',
'Has sales and outreach potential.',
'Loyal, driven, and values-aligned with the company mission.',
'Open to feedback and self-improvement.',
],
weaknesses: [
{ isCritical: true, description: 'Disorganized and late with deliverables — confirmed by previous internal notes.' },
{ isCritical: false, description: 'Poor implementation and recruiting output — does not effectively close the loop on influencer onboarding.' },
{ isCritical: false, description: 'May unintentionally cause friction with campaigns team by stepping outside process boundaries.' },
],
opportunities: {
roleAdjustment: 'Shift fully to Influencer Manager & Biz Dev Outreach as planned. Remove all execution and recruitment responsibilities.',
accountabilitySupport: "Pair with a high-output implementer (new hire) to balance Gentry's strategic skills.",
},
risks: [
"Without strict structure, Gentry's performance will stay flat or become a bottleneck.",
'If kept in a dual-role (recruiting + outreach), productivity will suffer.',
'He needs system constraints and direct oversight to stay focused.',
],
recommendation: {
action: 'Keep',
details: [
'But immediately restructure his role:',
'• Remove recruiting and logistical tasks.',
'• Focus only on influencer relationship-building, pitching, and business development.',
"Pair him with a new hire who is ultra-organized and can execute on Gentry's deals.",
],
},
grading: [],
};
export const SUBMISSIONS_DATA: Submission = {
employeeId: 'AG',
answers: [
{
question: 'What is the mission of your company?',
answer: 'To empower small businesses with AI-driven automation tools that increase efficiency and reduce operational overhead.',
},
{
question: 'How has your mission evolved in the last 1-3 years?',
answer: 'We shifted from general SaaS tools to vertical-specific solutions, with deeper integrations and onboarding support.',
},
{
question: 'What is your 5-year vision for the company?',
answer: 'To become the leading AI operations platform for SMBs in North America, serving over 100,000 customers.',
},
{
question: "What are your company's top 3 strategic advantages?",
answer: '1. Fast product iteration enabled by in-house AI capabilities\n2. Deep customer understanding from vertical specialization\n3. High customer retention due to integrated onboarding',
},
{
question: 'What are your biggest vulnerabilities or threats?',
answer: 'Dependence on a single marketing channel, weak middle management, and rising customer acquisition costs.',
},
],
};
export const FAQ_DATA: FaqItem[] = [
{
question: "What is the process for submitting a support ticket?",
answer: "Team members will undergo evaluations every three months, focusing on their performance, teamwork, and communication skills. Role advancements will be considered at these intervals."
},
{
question: "How can I reset my password?",
answer: "You can reset your password by clicking the 'Forgot Password' link on the login page. An email will be sent to you with instructions."
},
{
question: "What are the criteria for performance reviews?",
answer: "Performance reviews are based on a combination of self-assessment, peer feedback, and manager evaluation. Key criteria include goal achievement, collaboration, and contribution to company values."
},
{
question: "How can I access the company's training resources?",
answer: "All training resources are available in the 'Company Wiki' section of the platform. You can find documents, videos, and links to external courses."
},
{
question: "What should I do if I encounter a technical issue?",
answer: "For any technical issues, please submit a ticket through the 'Help & Support' page. Our IT team will get back to you within 24 hours."
},
{
question: "How do I provide feedback on team projects?",
answer: "Feedback can be provided directly within the project management tool or during scheduled team retrospectives. We encourage open and constructive communication."
}
];
export const CHAT_STARTERS = [
"Summarize Alex Green's latest report.",
"What are Alex's biggest strengths?",
"Identify any risks associated with Alex.",
"Should Alex be considered for a promotion?"
];
export const SAMPLE_COMPANY_REPORT: CompanyReport = {
id: 'sample-company-report',
createdAt: Date.now() - 86400000, // 1 day ago
overview: {
totalEmployees: 0, // Fixed: Start with 0 employees instead of hardcoded 6
departmentBreakdown: [],
submissionRate: 0,
lastUpdated: Date.now() - 86400000
},
gradingBreakdown: [],
operatingPlan: { nextQuarterGoals: [], keyInitiatives: [], resourceNeeds: [], riskMitigation: [] },
personnelChanges: { newHires: [], promotions: [], departures: [] },
keyPersonnelChanges: [
{ employeeName: "Alex Green", department: "Influencer Marketing", role: "Influencer Coordinator", changeType: "newHire" },
{ employeeName: "Jordan Smith", department: "Engineering", role: "Software Engineer", changeType: "promotion" }
],
immediateHiringNeeds: [
{
department: 'Engineering',
role: 'Frontend Developer',
priority: 'High',
reasoning: 'Growing product development workload requires additional frontend expertise'
},
{
department: 'Marketing',
role: 'Content Creator',
priority: 'Medium',
reasoning: 'Increasing content demands for influencer campaigns'
}
],
forwardOperatingPlan: {
quarterlyGoals: [
'Expand influencer network by 40%',
'Launch automated campaign tracking system',
'Implement comprehensive onboarding process',
'Increase team collaboration efficiency by 25%'
],
resourceNeeds: [
'Additional engineering talent',
'Enhanced project management tools',
'Training budget for skill development',
'Upgraded communication infrastructure'
],
riskMitigation: [
'Cross-train team members to reduce single points of failure',
'Implement backup processes for critical operations',
'Regular performance reviews and feedback cycles',
'Diversify client base to reduce dependency risks'
]
},
organizationalStrengths: [
],
organizationalRisks: [
'Key personnel dependency in critical roles',
'Limited project management oversight',
'Potential burnout from rapid growth',
'Communication gaps between departments'
],
gradingOverview: {
"overallGrade": 4,
"strengths": 3,
"weaknesses": 1
},
executiveSummary: `Your organization is ready to get started with employee assessments. Begin by inviting team members to complete their questionnaires and build comprehensive insights about your workforce.`
};