General Questions
What technologies does ProyectoWeb use?
What technologies does ProyectoWeb use?
- HTML5 - Semantic markup and structure
- CSS3 - Styling and responsive design
- JavaScript - Interactive functionality
- Git - Version control and collaboration
What are the system requirements for development?
What are the system requirements for development?
- Modern web browser (Chrome, Firefox, Safari, or Edge - latest version)
- Text editor or IDE (VS Code recommended)
- Git for version control
- 4GB RAM minimum (8GB recommended)
- Node.js (LTS version) for build tools
- npm or yarn package manager
- Local development server
- Browser developer tools knowledge
How do I get started with the project?
How do I get started with the project?
- Clone the repository using Git
- Read the documentation to understand the project structure
- Set up your development environment with required tools
- Run the project locally to ensure everything works
- Make your first changes on a feature branch
Is ProyectoWeb open source?
Is ProyectoWeb open source?
Development
How do I set up a local development environment?
How do I set up a local development environment?
- VS Code Live Server extension
- Python’s built-in server:
python -m http.server 8000 - Node’s http-server:
npx http-server
What coding standards should I follow?
What coding standards should I follow?
- Use semantic HTML5 elements
- Include proper meta tags and descriptions
- Maintain proper indentation (2 spaces)
- Use lowercase for tags and attributes
- Use meaningful class names (BEM methodology recommended)
- Organize styles logically
- Avoid inline styles
- Use CSS variables for consistent theming
- Use ES6+ syntax
- Follow camelCase naming convention
- Write descriptive variable and function names
- Comment complex logic
- Handle errors appropriately
How do I debug issues in the browser?
How do I debug issues in the browser?
- Chrome/Edge:
F12orCtrl+Shift+I(Windows/Linux) /Cmd+Option+I(Mac) - Firefox:
F12orCtrl+Shift+I(Windows/Linux) /Cmd+Option+I(Mac)
- Elements/Inspector: Inspect and modify HTML/CSS in real-time
- Console: View errors, warnings, and log messages
- Sources/Debugger: Set breakpoints and step through code
- Network: Monitor HTTP requests and responses
- Performance: Analyze page load and runtime performance
How do I handle responsive design?
How do I handle responsive design?
- Use relative units (rem, em, %, vw/vh) instead of fixed pixels
- Test on multiple devices and screen sizes
- Use CSS Grid and Flexbox for flexible layouts
- Optimize images for different screen sizes
Git & Version Control
What is the branching strategy?
What is the branching strategy?
main- Production-ready codedevelop- Integration branch for featuresfeature/*- New features (e.g.,feature/user-login)bugfix/*- Bug fixes (e.g.,bugfix/header-alignment)hotfix/*- Urgent production fixes
- Create a feature branch from
develop - Make your changes and commit regularly
- Push your branch and create a pull request
- After review and approval, merge to
develop - Periodically merge
developtomainfor releases
How do I write good commit messages?
How do I write good commit messages?
feat:New featurefix:Bug fixdocs:Documentation changesstyle:Formatting, missing semicolons, etc.refactor:Code restructuring without changing behaviortest:Adding or updating testschore:Maintenance tasks
How do I resolve merge conflicts?
How do I resolve merge conflicts?
- Identify conflicts: Git will mark conflicting files
- Open the file: Look for conflict markers:
- Edit the file: Keep the desired changes, remove markers
- Test your changes: Ensure everything works
- Stage and commit:
- Pull latest changes frequently
- Communicate with team members
- Keep branches short-lived
- Make smaller, focused commits
What should I do if I accidentally committed sensitive data?
What should I do if I accidentally committed sensitive data?
- Don’t push if you haven’t already
- Remove the sensitive data from your working directory
- Amend the commit if it’s the most recent:
- Rotate/invalidate compromised credentials immediately
- Contact your team lead or security team
- Consider using
git filter-branchor BFG Repo-Cleaner (advanced)
- Use
.gitignoreto exclude sensitive files - Use environment variables for secrets
- Implement pre-commit hooks to detect sensitive data
Performance & Optimization
How can I improve page load speed?
How can I improve page load speed?
- Use modern formats (WebP, AVIF)
- Compress images without losing quality
- Implement lazy loading:
<img loading="lazy"> - Use responsive images with
srcset
- Minify CSS and JavaScript files
- Remove unused code
- Bundle and compress assets
- Use code splitting for large applications
- Enable browser caching
- Use a Content Delivery Network (CDN)
- Reduce HTTP requests
- Enable gzip/brotli compression
- Minimize render-blocking resources
- Defer non-critical JavaScript
- Optimize CSS delivery
- Use font-display for web fonts
What are Core Web Vitals and why do they matter?
What are Core Web Vitals and why do they matter?
- LCP (Largest Contentful Paint) - Loading performance
- Goal: < 2.5 seconds
- Measures when main content loads
- FID (First Input Delay) - Interactivity
- Goal: < 100 milliseconds
- Measures time until page responds to user input
- CLS (Cumulative Layout Shift) - Visual stability
- Goal: < 0.1
- Measures unexpected layout shifts
- Impact SEO rankings
- Improve user experience
- Increase conversion rates
- Reduce bounce rates
- Google PageSpeed Insights
- Chrome DevTools Lighthouse
- Search Console Core Web Vitals report
How do I optimize CSS and JavaScript?
How do I optimize CSS and JavaScript?
- Remove unused CSS rules
- Use shorthand properties
- Avoid expensive selectors (universal, descendant)
- Combine similar rules
- Use CSS variables for reusable values
- Minify CSS for production
- Minimize DOM manipulation
- Use event delegation instead of multiple listeners
- Debounce/throttle expensive operations
- Avoid memory leaks (remove event listeners)
- Use async/defer for script loading:
- Minify and bundle JavaScript files
- PurgeCSS - Remove unused CSS
- Terser - JavaScript minification
- Webpack/Rollup - Module bundlers
- Lighthouse - Performance auditing
Accessibility
Why is web accessibility important?
Why is web accessibility important?
- Inclusive: Reaches users with disabilities (visual, auditory, motor, cognitive)
- Legal: Compliance with accessibility laws (ADA, Section 508, WCAG)
- SEO: Semantic HTML improves search engine rankings
- UX: Accessibility improvements benefit all users
- Business: Expands your potential audience
- 1 in 4 adults in the US has a disability
- Accessible websites have better user engagement
- Many accessibility features help users with temporary impairments
What are basic accessibility requirements?
What are basic accessibility requirements?
- Use semantic HTML elements (
<nav>,<main>,<article>) - Provide descriptive page titles
- Use heading hierarchy properly (h1 → h2 → h3)
- Include skip navigation links
- Add alt text to all images:
- Provide captions for videos
- Include transcripts for audio content
- Label all form inputs:
- Provide clear error messages
- Group related inputs with
<fieldset>
- Ensure all interactive elements are keyboard accessible
- Provide visible focus indicators
- Maintain logical tab order
- Meet WCAG contrast ratios (4.5:1 for normal text)
- Don’t rely on color alone to convey information
How do I test accessibility?
How do I test accessibility?
- WAVE browser extension
- axe DevTools browser extension
- Lighthouse accessibility audit
- Pa11y command-line tool
- Navigate using only keyboard (Tab, Enter, Space, Arrows)
- Test with screen readers (NVDA, JAWS, VoiceOver)
- Zoom page to 200% and verify usability
- Check color contrast ratios
- Verify all images have alt text
- Include users with disabilities in testing
- Gather feedback on accessibility barriers
- Iterate based on real user experiences
Security
What are common web security vulnerabilities?
What are common web security vulnerabilities?
- Injection - SQL, NoSQL, command injection
- Broken Authentication - Session management issues
- Sensitive Data Exposure - Unencrypted data transmission
- XML External Entities (XXE) - XML processing vulnerabilities
- Broken Access Control - Unauthorized access to resources
- Security Misconfiguration - Default settings, verbose errors
- Cross-Site Scripting (XSS) - Malicious scripts in web pages
- Insecure Deserialization - Remote code execution
- Using Components with Known Vulnerabilities - Outdated libraries
- Insufficient Logging & Monitoring - Delayed breach detection
How do I prevent Cross-Site Scripting (XSS) attacks?
How do I prevent Cross-Site Scripting (XSS) attacks?
- Validate and sanitize all user input
- Use allowlists instead of blocklists
- Reject unexpected input formats
- Escape HTML, JavaScript, and URL contexts
- Use framework built-in escaping functions
- Never insert untrusted data directly into DOM
- Use
textContentinstead ofinnerHTMLwhen possible - Avoid
eval()andFunction()constructor - Sanitize data before using in dynamic contexts
How should I handle sensitive data?
How should I handle sensitive data?
- Never store passwords in plain text
- Use secure hashing algorithms (bcrypt, Argon2)
- Encrypt sensitive data at rest
- Use environment variables for secrets
- Always use HTTPS in production
- Implement HSTS headers
- Use secure cookies:
Secure,HttpOnly,SameSite
- Implement principle of least privilege
- Use authentication and authorization
- Validate permissions on every request
- Log access to sensitive data
- Never store sensitive data in localStorage
- Minimize sensitive data in client-side code
- Clear sensitive data from memory when no longer needed
- Follow GDPR, CCPA, and other privacy regulations
- Implement data retention policies
- Provide users control over their data
Troubleshooting
My CSS changes aren't showing up. What should I do?
My CSS changes aren't showing up. What should I do?
- Hard refresh:
Ctrl+F5(Windows) orCmd+Shift+R(Mac) - Clear browser cache
- Use DevTools with cache disabled
- Check if another rule is overriding your styles
- Use DevTools to see computed styles
- Increase specificity or use
!important(last resort)
- Verify CSS file is linked correctly in HTML
- Check for typos in file path
- Ensure CSS file is in the correct directory
- Look for missing semicolons or braces
- Validate CSS with W3C validator
- Check browser console for errors
- CSS files are processed in order
- Later rules override earlier ones
- Check link order in
<head>
How do I fix JavaScript errors?
How do I fix JavaScript errors?
- Open browser DevTools (F12)
- Look for error messages in Console tab
- Note the file name and line number
-
Uncaught ReferenceError: Variable not defined
-
Uncaught TypeError: Wrong data type or null/undefined
-
Uncaught SyntaxError: Invalid JavaScript syntax
- Use
console.log()to inspect values - Set breakpoints in DevTools Sources tab
- Step through code line by line
- Watch variable values change
The website looks broken on mobile devices. How do I fix it?
The website looks broken on mobile devices. How do I fix it?
<head>:- Replace fixed pixel widths with relative units
- Use
max-widthinstead ofwidth - Apply
width: 100%to large elements
- Use Chrome DevTools device emulation
- Test on real devices when possible
- Check multiple screen sizes
- Make images responsive:
img { max-width: 100%; height: auto; } - Use flexible layouts: Flexbox or Grid
- Adjust font sizes for readability
- Ensure touch targets are at least 44x44px
How do I debug performance issues?
How do I debug performance issues?
- Open Chrome DevTools
- Go to Lighthouse tab
- Generate report for Performance
- Follow recommendations
- Record page load or interaction
- Analyze CPU usage and bottlenecks
- Look for long tasks (>50ms)
- Check for forced reflows/layouts
- Identify slow-loading resources
- Check file sizes (large images, scripts)
- Look for blocking requests
- Verify caching is working
- Large, unoptimized images
- Too many HTTP requests
- Render-blocking CSS/JS
- Inefficient JavaScript loops
- Memory leaks
- Compress and optimize images
- Minify CSS and JavaScript
- Enable browser caching
- Use lazy loading
- Defer non-critical scripts