Skip to content

Commit b63e5be

Browse files
Revise README for Job Application Form project
Updated project title and detailed job application form requirements, including HTML, CSS, and JavaScript validation specifications.
1 parent 7362c3d commit b63e5be

File tree

1 file changed

+392
-1
lines changed

1 file changed

+392
-1
lines changed

README.md

Lines changed: 392 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,392 @@
1-
# WebTech-LabTask2-registrationForm
1+
# WebTech-LabTask2 - Job Application Form
2+
3+
## 📋 Lab Requirements
4+
5+
### Requirements:
6+
7+
#### 1. HTML Form:
8+
9+
Create a job application form based on the provided sample design
10+
Include fields for:
11+
12+
- Name
13+
- Email
14+
- Phone
15+
- Password (for account creation)
16+
- Experience Level (dropdown)
17+
- Expected Salary
18+
- Terms & conditions checkbox
19+
20+
#### 2. CSS:
21+
22+
- Include styles for focus states and validation feedback
23+
- Create classes for highlighting focused fields and validation states
24+
- Use a professional color scheme suitable for job applications
25+
- Style the form attractively with a professional theme
26+
27+
#### 3. JavaScript Validation:
28+
29+
- All fields must be filled
30+
- Name: Minimum 3 letters
31+
- Email: Must be a valid email format
32+
- Phone: Exactly 11 digits
33+
- Password: Must contain at least one uppercase, one lowercase, one digit
34+
- Experience Level: Must select one option from dropdown
35+
- Entry Level (0-2 years)
36+
- Mid Level (3-5 years)
37+
- Senior Level (6-10 years)
38+
- Executive (10+ years)
39+
- Expected Salary: Must be a positive number
40+
- Show validation errors using `alert()` events
41+
42+
#### 4. JavaScript DOM Manipulation:
43+
44+
- **Focus Highlighting**: Use `addEventListener` to add a CSS class that highlights the focused input field with a distinct border color or background
45+
- **Real-time Validation Feedback**: Use `addEventListener` to add/remove CSS classes that show validation status (valid/invalid) as the user types. Highlight in red if a field has errors and doesn't pass validation.
46+
47+
### Folder Structure:
48+
49+
```
50+
Mid Lab Task 3/
51+
├── View/
52+
│ └── task_3_form.html
53+
├── CSS/
54+
│ └── task_3_style.css
55+
└── JS/
56+
└── task_3_valid.js
57+
```
58+
59+
### Validation Rules Summary:
60+
61+
1. Name: At least 3 characters, letters only
62+
2. Email: Valid email format
63+
3. Phone: Exactly 11 digits
64+
4. Password: At least 8 characters with uppercase, lowercase, and digit
65+
5. Experience Level: One option must be selected
66+
6. Expected Salary: Must be a positive number
67+
7. Terms & Conditions: Must be checked
68+
69+
### Time Limit:
70+
71+
2 hours
72+
73+
### Submission:
74+
75+
- Push your completed work to GitHub
76+
- Create a new repository named 'WT Lab Task 3'
77+
- Show all git commands from repo initialization to pushing
78+
79+
### Reference
80+
81+
82+
*Main Form View*
83+
84+
![Main Form View](https://i.postimg.cc/BZRx959W/Screenshot-2025-08-05-234118.png)
85+
86+
87+
*Focus Highlighting*
88+
89+
![Focus Highlighting](https://i.postimg.cc/QtbpZv30/Screenshot-2025-08-05-234557.png)
90+
91+
92+
*Validation Failed States*
93+
94+
![Validation Failed States](https://i.postimg.cc/PJCNV7rL/Screenshot-2025-08-05-234231.png)
95+
96+
---
97+
98+
99+
## 📋 Project Overview
100+
101+
This project implements a comprehensive job application form with advanced JavaScript validation, real-time feedback, and professional styling. The form includes client-side validation, focus highlighting, and dynamic UI feedback to enhance user experience.
102+
103+
### Live: https://sagarbiswas-multihat.github.io/WebTech-LabTask2-registrationForm/
104+
105+
## 🎯 Project Requirements
106+
107+
### HTML Form Features
108+
109+
- ✅ Name input field
110+
- ✅ Email input field
111+
- ✅ Phone number input field
112+
- ✅ Password input field (for account creation)
113+
- ✅ Experience Level dropdown with 4 options
114+
- ✅ Expected Salary input field
115+
- ✅ Terms & Conditions checkbox
116+
- ✅ Professional styling and layout
117+
118+
### CSS Styling Features
119+
120+
- ✅ Professional color scheme suitable for job applications
121+
- ✅ Focus state highlighting with distinct visual feedback
122+
- ✅ Validation state classes (valid/invalid)
123+
- ✅ Responsive form container with gradient background
124+
- ✅ Modern border-radius and shadow effects
125+
- ✅ Hover effects on submit button
126+
127+
### JavaScript Validation Rules
128+
129+
-**Name**: Minimum 3 characters, letters and spaces only
130+
-**Email**: Valid email format validation
131+
-**Phone**: Exactly 11 digits
132+
-**Password**: Minimum 8 characters with uppercase, lowercase, and digit
133+
-**Experience Level**: Must select one option from dropdown
134+
-**Expected Salary**: Must be a positive number
135+
-**Terms & Conditions**: Must be checked
136+
- ✅ Real-time validation feedback as user types
137+
- ✅ Form submission validation with alert messages
138+
139+
### JavaScript DOM Manipulation Features
140+
141+
- ✅ Focus highlighting using `addEventListener`
142+
- ✅ Real-time validation feedback with CSS class manipulation
143+
- ✅ Dynamic border colors and backgrounds for validation states
144+
- ✅ Event-driven validation on input, change, and submit events
145+
146+
## 📁 Project Structure
147+
148+
```
149+
MID_LAB/
150+
├── View/
151+
│ └── task_3_form.html # Main HTML form
152+
├── CSS/
153+
│ └── task_3_style.css # Styling and validation classes
154+
├── JS/
155+
│ └── task_3_valid.js # Validation logic and DOM manipulation
156+
└── README.md # Project documentation
157+
```
158+
159+
## 🚀 Features
160+
161+
### 1. Advanced Form Validation
162+
163+
- **Real-time validation**: Provides immediate feedback as users type
164+
- **Pattern matching**: Uses regex for robust input validation
165+
- **Visual feedback**: Color-coded validation states (green for valid, red for invalid)
166+
- **Error accumulation**: Collects all validation errors for comprehensive feedback
167+
168+
### 2. User Experience Enhancements
169+
170+
- **Focus highlighting**: Focused fields get distinctive styling
171+
- **Professional design**: Modern gradient backgrounds and clean typography
172+
- **Responsive layout**: Form adapts to different screen sizes
173+
- **Intuitive feedback**: Clear visual indicators for form state
174+
175+
### 3. Technical Implementation
176+
177+
- **Event-driven architecture**: Uses addEventListener for all interactions
178+
- **Modular validation**: Separate validation functions for each field
179+
- **CSS class manipulation**: Dynamic styling based on validation state
180+
- **Form submission handling**: Prevents submission with validation errors
181+
182+
## 🎨 Design Elements
183+
184+
### Color Scheme
185+
186+
- **Primary**: Blue gradient (#2563eb to #1e40af)
187+
- **Success**: Green (#10b981) for valid inputs
188+
- **Error**: Red (#ef4444) for invalid inputs
189+
- **Focus**: Bright green (#15ff00) for focused fields
190+
- **Background**: White (#fff) form container on gradient background
191+
192+
### Typography
193+
194+
- **Font Family**: Segoe UI for modern, clean appearance
195+
- **Responsive sizing**: Appropriate font sizes for different elements
196+
- **Color hierarchy**: Dark colors for primary text, blue for headings
197+
198+
## 🔧 Technical Specifications
199+
200+
### Validation Patterns
201+
202+
```javascript
203+
// Name: Letters and spaces, minimum 3 characters
204+
/^[A-Za-z ]{3,}$/
205+
206+
// Email: Standard email format
207+
/^[\w.-]+@[\w-]+\.[A-Za-z]{2,}$/
208+
209+
// Phone: Exactly 11 digits
210+
/^\d{11}$/
211+
212+
// Password: 8+ chars with uppercase, lowercase, and digit
213+
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{8,}$/
214+
```
215+
216+
### Experience Level Options
217+
218+
1. **Entry Level** (0-2 years)
219+
2. **Mid Level** (3-5 years)
220+
3. **Senior Level** (6-10 years)
221+
4. **Executive** (10+ years)
222+
223+
## 🚀 Getting Started
224+
225+
### Prerequisites
226+
227+
- Modern web browser (Chrome, Firefox, Safari, Edge)
228+
- Basic understanding of HTML, CSS, and JavaScript
229+
230+
### Installation & Setup
231+
232+
1. **Clone the repository**
233+
234+
```bash
235+
git clone https://github.com/SagarBiswas-MultiHAT/WT_MID_LAB.git
236+
cd WT_MID_LAB
237+
```
238+
239+
2. **Open the project**
240+
241+
- Navigate to the project directory
242+
- Open `View/task_3_form.html` in your web browser
243+
- Or use a local server for best results
244+
245+
3. **For development with local server**
246+
247+
```bash
248+
# Using Python
249+
python -m http.server 8000
250+
251+
# Using Node.js
252+
npx serve .
253+
254+
# Using PHP (if using XAMPP)
255+
# Place in htdocs folder and access via localhost
256+
```
257+
258+
## 📖 Usage Instructions
259+
260+
1. **Fill out the form fields**:
261+
262+
- Enter your full name (minimum 3 letters)
263+
- Provide a valid email address
264+
- Enter an 11-digit phone number
265+
- Create a secure password (8+ chars with mixed case and numbers)
266+
- Select your experience level from dropdown
267+
- Enter expected salary (positive number)
268+
- Check the terms & conditions checkbox
269+
270+
2. **Real-time feedback**:
271+
272+
- Fields turn green when valid
273+
- Fields turn red when invalid
274+
- Focused fields have distinctive highlighting
275+
276+
3. **Form submission**:
277+
- Click "Apply" to submit
278+
- Any validation errors will be displayed in an alert
279+
- All fields must be valid to submit successfully
280+
281+
## 🧪 Testing
282+
283+
### Test Cases
284+
285+
1. **Name Validation**
286+
287+
- ✅ Valid: "John Doe", "Alice Smith"
288+
- ❌ Invalid: "Jo", "123", "John123"
289+
290+
2. **Email Validation**
291+
292+
- ✅ Valid: "user@domain.com", "test.email@company.org"
293+
- ❌ Invalid: "invalid-email", "user@", "@domain.com"
294+
295+
3. **Phone Validation**
296+
297+
- ✅ Valid: "01234567890"
298+
- ❌ Invalid: "123456789", "12345678901", "abc1234567"
299+
300+
4. **Password Validation**
301+
- ✅ Valid: "Password123", "SecurePass1"
302+
- ❌ Invalid: "password", "PASSWORD", "Pass123"
303+
304+
## 🎯 Learning Objectives Achieved
305+
306+
- ✅ HTML form creation with various input types
307+
- ✅ CSS styling with focus states and validation feedback
308+
- ✅ JavaScript event handling and DOM manipulation
309+
- ✅ Regular expression pattern matching
310+
- ✅ Real-time form validation
311+
- ✅ User experience design principles
312+
- ✅ Professional web development practices
313+
314+
## 🔄 Git Workflow
315+
316+
### Repository Setup Commands
317+
318+
```bash
319+
# Initialize repository
320+
git init
321+
322+
# Add all files
323+
git add .
324+
325+
# Initial commit
326+
git commit -m "Initial commit: Job application form with validation"
327+
328+
# Add remote origin
329+
git remote add origin https://github.com/SagarBiswas-MultiHAT/WT_MID_LAB.git
330+
331+
# Push to GitHub
332+
git push -u origin main
333+
```
334+
335+
### Development Workflow
336+
337+
```bash
338+
# Check status
339+
git status
340+
341+
# Add changes
342+
git add .
343+
344+
# Commit changes
345+
git commit -m "Add feature: real-time validation feedback"
346+
347+
# Push changes
348+
git push origin main
349+
```
350+
351+
## 📝 Code Quality Features
352+
353+
- **Clean code structure**: Well-organized and commented
354+
- **Separation of concerns**: HTML, CSS, and JS in separate files
355+
- **Reusable functions**: Modular validation functions
356+
- **Event-driven design**: Proper event listener implementation
357+
- **Error handling**: Comprehensive validation error collection
358+
359+
## 🎨 Future Enhancements
360+
361+
- [ ] Add password strength indicator
362+
- [ ] Implement file upload for resume
363+
- [ ] Add form progress indicator
364+
- [ ] Include accessibility improvements (ARIA labels)
365+
- [ ] Add animation transitions for validation states
366+
- [ ] Implement form data persistence with localStorage
367+
368+
## 👨‍💻 Author
369+
370+
**Sagar Biswas**
371+
372+
- GitHub: [@SagarBiswas-MultiHAT](https://github.com/SagarBiswas-MultiHAT)
373+
- Repository: [WT_MID_LAB](https://github.com/SagarBiswas-MultiHAT/WT_MID_LAB.git)
374+
- Course: Web Technology
375+
- Lab: Mid Lab Task 3
376+
377+
## 📅 Development Timeline
378+
379+
- **Time Allocated**: 2 hours
380+
- **Completion Status**: ✅ Completed
381+
- **Key Milestones**:
382+
- HTML form structure: ✅
383+
- CSS styling and validation classes: ✅
384+
- JavaScript validation logic: ✅
385+
- Real-time feedback implementation: ✅
386+
- Testing and refinement: ✅
387+
388+
## 📄 License
389+
390+
This project is created for educational purposes as part of the Web Technology course curriculum.
391+
392+
---

0 commit comments

Comments
 (0)