208 lines
9.8 KiB
TypeScript
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.`
|
|
}; |