- Modern web browser (Chrome, Firefox, Safari, Edge)
- VS Code with Live Server extension (recommended) OR any local server
# 1. Clone the repository
git clone <repository-url>
cd avy-web
# 2. Navigate to the frontend directory
cd src/avy-fe
# 3. Open in browser
# Option A: Use Live Server in VS Code (right-click index.html > Open with Live Server)
# Option B: Open index.html directly in browserThat's it! No build process, no npm install needed.
Login with these pre-configured users:
| Role | Password | Access | |
|---|---|---|---|
| Student | john.doe@example.com | password123 | Job browsing, applications, CV management |
| Alumni | jane.smith@example.com | password123 | Same as student |
| Employer | alice.johnson@techcorp.com | password123 | Post jobs, search candidates |
| Admin | admin@avy.com | password123 | User management, analytics |
As a Student/Alumni (john.doe@example.com)
- Dashboard: See personalized welcome and quick stats
- Job Board (
/jobs): Browse 6 mock jobs- Try filters: search, employment type, work mode, experience level
- Try sorting: newest, highest salary
- Job Detail (
/jobs/j1): View full job details- Apply with cover letter and CV upload
- Companies (
/companies): Browse 4 companies - Profile (
/profile): Manage your CV- Personal info, work experience, education, skills
As an Employer (alice.johnson@techcorp.com)
- Dashboard: See job posting stats
- Post Job (
/employer/post-job): Create new job posting- Fill in all required fields
- Add required and nice-to-have skills
- See subscription limit enforcement (TechCorp has 5 active jobs limit)
- Candidate Search (
/employer/candidates): Browse students/alumni- Filter by type, skills, visibility
- View profiles, save candidates
As an Admin (admin@avy.com)
- Dashboard: Platform overview
- User Management (
/admin/users): See all 4 users- Filter by role
- View/Edit/Delete actions
- Analytics (
/admin/analytics): See platform KPIs- Total users, jobs, applications, hired count
- Top skills and companies
- Monthly growth metrics
src/avy-fe/
├── index.html # Entry point
├── assets/
│ ├── css/
│ │ └── style.css # Custom styles
│ └── js/
│ ├── main.js # App initialization
│ ├── router.js # SPA routing
│ ├── models/
│ │ └── DataModels.js # 10 data model classes
│ ├── services/
│ │ ├── authService.js # Authentication
│ │ └── mockDataService.js # Mock API
│ └── controllers/
│ ├── landingController.js
│ ├── loginController.js
│ ├── dashboardController.js
│ ├── jobBoardController.js # Bloom
│ ├── jobDetailController.js # Bloom
│ ├── companiesController.js # Bloom
│ ├── profileController.js # Bloom
│ ├── postJobController.js # Evergreen
│ ├── candidatesController.js # Evergreen
│ ├── adminUsersController.js # Meridian
│ ├── adminAnalyticsController.js # Meridian
│ └── notFoundController.js
- ✅ Filter jobs by multiple criteria
- ✅ Apply to jobs with cover letter
- ✅ Search companies
- ✅ Update profile and CV
- ✅ Post new job with all details
- ✅ Search candidates by skills
- ✅ Subscription limit validation
- ✅ Manage all users
- ✅ View platform analytics
- ✅ Role-based access control
- Edit Controllers: Modify
assets/js/controllers/*.jsfor page logic - Add Routes: Register new routes in
main.js>registerRoutes() - Update Models: Add properties to classes in
DataModels.js - Add Mock Data: Extend
mockDataService.jswith more data
// Open browser console (F12)
// All services available globally:
console.log(window.authService.getCurrentUser());
console.log(await window.mockDataService.getAllJobs());Add a new page:
- Create
assets/js/controllers/myPageController.js - Import in
main.js:import myPageController from './controllers/myPageController.js' - Register route:
router.addRoute('/my-page', myPageController, true) - Add link:
<a href="/my-page" data-link>My Page</a>
Add mock data:
// In mockDataService.js
generateMockJobs() {
return [
...this.jobs,
new Job({
id: 'j7',
title: 'New Position',
// ... other fields
})
];
}Protect a route by role:
// In main.js
router.addRoute('/my-page', myPageController, true, ['student', 'alumni']);Solution: Make sure you're using a local server (Live Server), not opening index.html directly. ES6 modules require HTTP protocol.
Solution: Check browser console for errors. Make sure:
- Email and password match one of the test accounts
- localStorage is enabled in browser
Solution: Check browser console. Likely causes:
- Typo in controller file name
- Controller not imported in
main.js - Route not registered
Solution:
- Check internet connection (Tailwind CSS is loaded from CDN)
- Verify
style.cssis loaded inindex.html - Clear browser cache
- Full Implementation:
docs/Boilerplate_Implementation_Summary.md - User Requirements:
docs/Avy_UR.txt - Architecture: See "Architecture" section in Implementation Summary
✅ Fully Functional:
- Login/Logout
- Job browsing with filters and search
- Job application submission
- Company directory
- CV/Profile management (UI)
- Job posting form
- Candidate search
- User management table
- Analytics dashboard
- Role-based access control
- File uploads (no actual file storage)
- Data persistence (resets on refresh)
- Email notifications
- Application status workflow
- Success stories carousel
- Events registration
-
Backend Development:
- Set up Node.js/Express API
- Connect to PostgreSQL/MongoDB
- Implement real authentication (JWT)
-
Feature Enhancements:
- File upload functionality
- Email notifications
- Real-time updates
- Payment integration
- Advanced analytics with charts
-
Testing:
- Unit tests (Jest)
- E2E tests (Playwright)
- Accessibility testing
- Use Browser DevTools: Inspect network requests, console logs, and localStorage
- Check Router Logs: Navigate between pages and watch console for route matches
- Mock Data is Your Friend: All data in
mockDataService.jsis easily editable - Test All Roles: Log in as different users to see different views
- Mobile Testing: Use browser DevTools device emulation
When adding new features:
- Follow existing code patterns
- Add JSDoc comments
- Update this Quick Start Guide
- Test with all 4 user roles
- Ensure responsive design
For questions or issues:
- Check browser console for errors
- Review
Boilerplate_Implementation_Summary.md - Verify test account credentials
- Check that all files are in correct directory structure
The boilerplate is ready for you to extend and customize. All three modules (Bloom, Evergreen, Meridian) are implemented with real UI and mock data.
Happy Coding! 🚀