A modern web application for IT professionals to search for jobs, manage their profiles, and connect with IT companies. Built with Django and featuring a beautiful, responsive UI.
- User Management: Registration, authentication, profile management with avatar upload
- Job Search: Advanced filtering by location, programming language, company, and keywords
- Company Profiles: Detailed company information and job listings
- Blog System: IT-related articles and insights
- Responsive Design: Modern, mobile-friendly interface
- Search & Filter: Real-time job search with trending tags
- Social Authentication: Google OAuth integration
- User Reviews: Employee reviews on job detail pages
- Related Jobs: Smart job recommendations
- Django 5.0.2 - Web framework
- Django REST Framework - API development
- SQLite - Database (can be configured for PostgreSQL)
- Django CORS Headers - Cross-origin resource sharing
- Django Filters - Advanced filtering
- Social Auth - OAuth authentication
- Pillow - Image processing
- HTML5/CSS3 - Modern, responsive design
- JavaScript - Interactive features
- Font Awesome - Icons
- Bootstrap-inspired - Custom CSS framework
CDDT_2_DoAnWebTimViec/
βββ backend/ # Django backend
β βββ it_job_search/ # Main Django project
β βββ user_management/ # User authentication & profiles
β βββ job_listings/ # Job management
β βββ company_profiles/ # Company management
β βββ blog_posts/ # Blog system
β βββ media/ # Uploaded files
β βββ manage.py # Django management
βββ frontend/ # Frontend assets
βββ venv/ # Python virtual environment
βββ README.md # This file
- Python 3.8+
- pip (Python package installer)
- Git
git clone <repository-url>
cd CDDT_2_DoAnWebTimViecWindows:
python -m venv venv
venv\Scripts\activatemacOS/Linux:
python3 -m venv venv
source venv/bin/activatecd backend
pip install django
pip install djangorestframework
pip install django-cors-headers
pip install django-filter
pip install social-auth-app-django
pip install pillow
pip install python-dotenvpython manage.py makemigrations
python manage.py migratepython manage.py createsuperuserThe application includes management commands to populate the database with sample data:
# Seed jobs, companies, locations, and programming languages
python manage.py seed_jobs
# Seed blog posts
python manage.py seed_blogpostsWhat gets seeded:
- 270 jobs across 3 locations (Ho Chi Minh City, Hanoi, Da Nang)
- 20 companies with descriptions and websites
- 10 programming languages (Python, JavaScript, Java, etc.)
- 10 blog posts with sample content
- 3 locations (Ho Chi Minh City, Hanoi, Da Nang)
python manage.py runserverThe application will be available at: http://127.0.0.1:8000/
Perfect for users who don't want to install anything:
- Download:
IT_Job_Search_Portable.zip - Extract the ZIP file
- Run: Double-click
start_app.bat - Access: Open http://127.0.0.1:8000 in browser
Features:
- β No Python installation required
- β No package installation required
- β Includes embedded Python
- β Auto-setup database and sample data
- β Works on any Windows machine
For users with Docker installed:
# Build and run with Docker Compose
docker-compose up
# Or build manually
docker build -t it-job-search .
docker run -p 8000:8000 it-job-searchFeatures:
- β Isolated environment
- β Includes PostgreSQL database
- β Easy deployment
- β Consistent across platforms
Single file executable:
- Download:
it_job_search.exe - Run: Double-click the executable
- Access: Open http://127.0.0.1:8000 in browser
Features:
- β Single file
- β No dependencies
- β Auto-setup everything
- β Portable
Modern web interface launcher:
# Install Streamlit
pip install streamlit
# Run launcher
streamlit run streamlit_app.pyFeatures:
- β Beautiful web interface
- β Auto-installation of requirements
- β One-click launch
- β Status monitoring
# Run the build script
build_all.batThis will create:
IT_Job_Search_Portable.zip- Portable versiondist/it_job_search.exe- Executable versionIT_Job_Search_Complete_Distribution.zip- All versions
# Portable version
python create_portable.py
# Executable version
python build_executable.py
# Docker version
docker build -t it-job-search .- 270 total jobs distributed across locations
- Job types: Backend, Frontend, Fullstack, Mobile, DevOps, QA, Data, AI, Project Manager, Business Analyst
- Salary ranges: $800 - $3000 USD
- Experience levels: Junior, Middle, Senior
- Skills: Randomly assigned from 10 programming languages
- 20 companies including: FPT Software, VNG Corporation, Viettel Group, MB Bank, Techcombank, Momo, Tiki, Shopee, Grab, VNPT, CMC Corporation, Haravan, Axon, KMS Technology, NashTech, TMA Solutions, Sendo, Be Group, Vietcombank, ELCA
- Python, JavaScript, Java, C#, PHP, TypeScript, Ruby, Go, Swift, Kotlin
- 10 sample blog posts with IT-related content
- Topics: Programming, Career advice, Industry trends
Create a .env file in the backend/ directory:
SECRET_KEY=your-secret-key-here
DEBUG=True
ALLOWED_HOSTS=localhost,127.0.0.1
# Email settings (for password reset)
EMAIL_HOST=smtp.gmail.com
EMAIL_PORT=587
EMAIL_USE_TLS=True
EMAIL_HOST_USER=your-email@gmail.com
EMAIL_HOST_PASSWORD=your-app-password
# Google OAuth (optional)
SOCIAL_AUTH_GOOGLE_OAUTH2_KEY=your-google-oauth-key
SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET=your-google-oauth-secretThe default configuration uses SQLite. For production, you can switch to PostgreSQL:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'your_db_name',
'USER': 'your_db_user',
'PASSWORD': 'your_db_password',
'HOST': 'localhost',
'PORT': '5432',
}
}- Hero Section: Welcome message with search functionality
- Top Companies: Carousel of featured companies
- Dynamic Stats: Animated statistics
- Blog Preview: Latest blog posts
- User Feedback: Testimonials section
- Advanced Filters: Location, language, company, experience level
- Search Bar: Real-time keyword search
- Job Cards: Beautiful, responsive job listings
- Pagination: Smooth navigation through results
- Save Jobs: Bookmark interesting positions
- Comprehensive Info: Full job description, requirements, benefits
- Company Profile: Detailed company information
- Apply Button: Direct application process
- Related Jobs: Smart recommendations
- Reviews: Employee testimonials
- Profile Management: Edit personal information and avatar
- Application History: Track applied jobs
- Saved Jobs: Manage bookmarked positions
- Settings: Account preferences and notifications
- Company Overview: Mission, vision, culture
- Job Listings: All positions from the company
- Contact Information: Address, phone, website
- Employee Reviews: Authentic feedback
- IT Articles: Programming tips, career advice
- Categories: Organized by topics
- Search: Find specific articles
- Comments: User engagement
# Example search filters
- Location: Ho Chi Minh City, Hanoi, Da Nang
- Programming Language: Python, JavaScript, Java, etc.
- Experience Level: Junior, Middle, Senior
- Job Type: Full-time, Part-time, Remote
- Salary Range: $800 - $3000
- Company Size: Startup, SME, Enterprise- Instant Results: Search as you type
- Auto-complete: Smart suggestions
- Trending Tags: Popular search terms
- Search History: Recent searches
- Touch-friendly: Optimized for mobile devices
- Fast Loading: Optimized images and assets
- Offline Support: Basic functionality without internet
- PWA Ready: Progressive Web App features
- Chrome: Full support
- Firefox: Full support
- Safari: Full support
- Edge: Full support
- JWT Tokens: Secure API authentication
- OAuth Integration: Google login
- Password Reset: Email-based recovery
- Session Management: Secure user sessions
- CSRF Protection: Cross-site request forgery prevention
- XSS Prevention: Cross-site scripting protection
- SQL Injection: Parameterized queries
- File Upload Security: Validated file uploads
- Minified CSS/JS: Reduced file sizes
- Image Optimization: Compressed images
- Lazy Loading: Load content on demand
- Caching: Browser and server caching
- Database Indexing: Optimized queries
- Caching: Redis/Memcached support
- CDN Ready: Content delivery network support
- API Pagination: Efficient data loading
# Run tests
python manage.py test
# Coverage report
coverage run --source='.' manage.py test
coverage report- Unit Tests: Individual component testing
- Integration Tests: API endpoint testing
- Frontend Tests: JavaScript functionality
- End-to-End Tests: Complete user workflows
# Collect static files
python manage.py collectstatic
# Set production settings
export DJANGO_SETTINGS_MODULE=it_job_search.settings.production
# Run with Gunicorn
gunicorn it_job_search.wsgi:application- Heroku: Easy cloud deployment
- AWS: Scalable cloud infrastructure
- DigitalOcean: VPS deployment
- Docker: Containerized deployment
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests
- Submit a pull request
- PEP 8: Python code style
- ESLint: JavaScript code style
- Type Hints: Python type annotations
- Documentation: Comprehensive docstrings
- Documentation: Check this README first
- Issues: Report bugs on GitHub
- Discussions: Ask questions in GitHub Discussions
- Email: Contact the development team
- Port 8000 in use: Change port or stop other services
- Database errors: Run migrations
- Static files not loading: Run collectstatic
- Permission errors: Check file permissions
This project is licensed under the MIT License - see the LICENSE file for details.
- Django Community: For the excellent web framework
- Bootstrap: For the responsive design inspiration
- Font Awesome: For the beautiful icons
- Contributors: Everyone who helped improve this project
Made with β€οΈ for the IT community