Skip to content

Latest commit

Β 

History

16 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🏒 Enfue Companies Search Platform

Docker Typesense Python License

Professional search platform built with Typesense for company discovery and job opportunities across Vietnam.

πŸš€ Quick Start

git clone https://github.com/lytv/enfue.git
cd enfue
./docker-deploy.sh

🌐 Live Demo

πŸš€ Production (Render)

🏠 Local Development

🎬 Demo Video

πŸŽ₯ Live Demo Preview

Enfue Demo

πŸ“Ή Download Full Video

Demo Features:

  • Natural language search queries
  • Advanced filtering and faceted search
  • Semantic search capabilities
  • Real-time search results

πŸ” Search Features

1. Natural Language Search

  • Ask questions in plain English
  • "hiring companies" β†’ Companies with open positions
  • "tech companies in Da Nang" β†’ Tech companies in Da Nang
  • "companies with more than 5 positions" β†’ Companies hiring heavily

2. Advanced Search

  • Faceted search with interactive filters
  • Auto-complete suggestions
  • Advanced filtering with numeric operators
  • Pagination and highlighting

3. Semantic Search

  • Multi-field search across company names and locations
  • Context understanding for relevant results
  • Intelligent ranking and search analytics

πŸ“Š Data Overview

  • 196 Companies indexed from Vietnam job market
  • 8 Major Cities: Da Nang (161), Hue (21), Ho Chi Minh (7), Ha Noi (3), etc.
  • 17 Companies with open positions
  • ~20 Total Positions available

πŸ› οΈ Technical Stack

  • Search Engine: Typesense 29.0
  • Backend: Python 3.11 with HTTP server
  • Frontend: Vanilla JavaScript with modern CSS
  • Deployment: Docker containerization + Render cloud hosting
  • Data: CSV import with automatic parsing
  • Cloud Hosting: Render - Auto-deploy from GitHub

πŸ”§ Management Commands

🏠 Local Development

./docker-deploy.sh                    # Deploy services locally
docker stop enfue-typesense enfue-web # Stop services
docker logs enfue-web                 # View logs
docker ps                            # Check status
curl http://localhost:8080/health    # Health check
docker system prune -f               # Clean up

πŸš€ Production (Render)

  • Auto-deploy: Pushes to main branch automatically deploy
  • Manual deploy: Use Render dashboard to trigger deployments
  • Logs: Available in Render dashboard
  • Health check: https://enfue-1.onrender.com/health

πŸ“ Project Structure

enfue/
β”œβ”€β”€ index.html                    # Main search interface
β”œβ”€β”€ advanced-search.html         # Advanced search features
β”œβ”€β”€ semantic-search.html         # Semantic search demo
β”œβ”€β”€ docker-deploy.sh             # Docker deployment script (local)
β”œβ”€β”€ Dockerfile                   # Docker configuration for Render
β”œβ”€β”€ requirements.txt             # Python dependencies
β”œβ”€β”€ render.yaml                  # Render service configuration
β”œβ”€β”€ setup_typesense.py          # Data import script
β”œβ”€β”€ serve_demo_docker.py        # HTTP server for Docker
└── Run_Browser_Agent_With_A_Goal_In_Background_2025-10-02T03_02_40.209Z.csv

πŸ“ˆ Performance

  • Search Latency: <3ms average
  • Index Time: ~2-3 seconds for 196 records
  • Memory Usage: ~5-10MB
  • Concurrent Searches: 100+ queries/second

🎯 Use Cases

  1. Job Portal: Find companies with open positions
  2. Company Directory: Browse companies by location
  3. Recruitment: Filter candidates by location preferences
  4. Market Analysis: Understand job market distribution

πŸ” Search Examples

Natural Language Queries

"hiring companies"                    # β†’ Companies with open positions
"tech companies in Da Nang"          # β†’ Tech companies in Da Nang
"companies with more than 5 positions" # β†’ Companies hiring heavily
"biggest companies"                  # β†’ Companies sorted by position count

Advanced Queries

"tech AND da nang AND open positions" # β†’ Complex filtering
"companies:>5 positions"             # β†’ Numeric filtering
"sort by positions descending"       # β†’ Custom sorting

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Web Frontend  β”‚    β”‚    Typesense     β”‚
β”‚   (Port 8080)   │◄──►│   (Port 8108)    β”‚
β”‚                 β”‚    β”‚                  β”‚
β”‚ - HTML/CSS/JS   β”‚    β”‚ - Search Engine  β”‚
β”‚ - HTTP Server   β”‚    β”‚ - Data Storage   β”‚
β”‚ - API Client    β”‚    β”‚ - Query Engine   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

🚨 Troubleshooting

Common Issues

  1. Docker credentials error

    docker: error getting credentials - err: exec: "docker-credential-desktop": executable file not found
    

    Solution: Use ./docker-deploy.sh

  2. No search results

    • Check Typesense server: curl http://localhost:8108/health
    • Verify data import: python3 setup_typesense.py
  3. Connection errors

    • Ensure Docker is running
    • Check port availability: lsof -ti:8080
  4. Render deployment issues

    • Check Render dashboard logs
    • Verify environment variables are set correctly
    • Ensure GitHub repository is connected

Debug Commands

# Local development
docker ps
docker logs enfue-web
curl http://localhost:8080/health
curl -H "x-typesense-api-key: Hu52dwsas2AdxdE" "http://localhost:8108/collections/enfue_companies/documents/search?q=*&query_by=company_name&per_page=1"

# Production (Render)
curl https://enfue-1.onrender.com/health

🀝 Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“ž Support

For issues and questions:

  1. Check service logs and health status
  2. Review browser console for errors
  3. Test API endpoints directly
  4. Refer to Typesense Documentation

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • Typesense for the amazing search engine
  • Vietnam tech community for inspiration
  • All contributors and users

Built with ❀️ for the Vietnam tech community

Happy Searching! πŸ”βœ¨

GitHub stars GitHub forks

About

Enfue Companies Search

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages