{"id":31727645,"url":"https://github.com/xorbit01/career-pulse-backend","last_synced_at":"2026-07-11T16:31:29.680Z","repository":{"id":317832963,"uuid":"1068963122","full_name":"XORbit01/career-pulse-backend","owner":"XORbit01","description":"💼🤝🏽 A Go-based REST API for the Career Pulse job seeking platform, featuring user authentication, job management, and real-time chat functionality.","archived":false,"fork":false,"pushed_at":"2025-10-03T10:20:56.000Z","size":235,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-13T08:19:01.876Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/XORbit01.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-03T07:27:10.000Z","updated_at":"2025-10-03T11:14:02.000Z","dependencies_parsed_at":"2025-10-03T11:35:27.051Z","dependency_job_id":"9df367d4-0c70-464b-92a5-ffb4c59ffa13","html_url":"https://github.com/XORbit01/career-pulse-backend","commit_stats":null,"previous_names":["xorbit01/career-pulse-backend"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/XORbit01/career-pulse-backend","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XORbit01%2Fcareer-pulse-backend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XORbit01%2Fcareer-pulse-backend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XORbit01%2Fcareer-pulse-backend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XORbit01%2Fcareer-pulse-backend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/XORbit01","download_url":"https://codeload.github.com/XORbit01/career-pulse-backend/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XORbit01%2Fcareer-pulse-backend/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35368766,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-11T02:00:05.354Z","response_time":104,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-10-09T06:30:11.873Z","updated_at":"2026-07-11T16:31:29.671Z","avatar_url":"https://github.com/XORbit01.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Career Pulse Backend\n\nA Go-based REST API for the Career Pulse job seeking platform, featuring user authentication, job management, and real-time chat functionality.\n\n\u003e **Frontend Repository**: [https://github.com/XORbit01/career-pulse-frontend](https://github.com/XORbit01/career-pulse-frontend)\n\n## Features\n\n- **User Authentication**: JWT-based authentication with role-based access control\n- **Job Management**: CRUD operations for job postings and applications\n- **Real-time Chat**: WebSocket-based messaging between employers and job seekers\n- **File Upload**: Support for profile images and document uploads\n- **API Documentation**: Auto-generated Swagger documentation\n\n## Prerequisites\n\n- Go 1.21 or higher\n- PostgreSQL 12 or higher\n- Git\n\n## Setup\n\n### 1. Clone the Repository\n\n```bash\ngit clone \u003cyour-repo-url\u003e\ncd career-pulse-backend\n```\n\n### 2. Environment Configuration\n\nCopy the environment template and configure your settings:\n\n```bash\ncp env.example .env\n```\n\nEdit `.env` with your actual values:\n\n```env\n# Application Environment\nENVIRONMENT=development\n\n# Server Port\nPORT=8080\n\n# JWT Configuration (REQUIRED)\nJWT_SECRET=your-super-secret-jwt-key-change-this-in-production\n\n# Token Lifetime\nTOKEN_LIFETIME=24h\n\n# Database Configuration\n# Option 1: Use full DATABASE_URL (recommended)\nDATABASE_URL=postgresql://username:password@localhost:5432/database_name?sslmode=disable\n\n# Option 2: Use individual parameters\nDB_HOST=localhost\nDB_PORT=5432\nDB_USER=your_database_user\nDB_PASSWORD=your_database_password\nDB_NAME=your_database_name\nDB_SSLMODE=disable\n```\n\n**Important**: Generate a secure JWT secret:\n```bash\nopenssl rand -base64 32\n```\n\n### 3. Database Setup\n\nCreate a PostgreSQL database and run migrations:\n\n```bash\n# Install migration tool (if not already installed)\ngo install github.com/golang-migrate/migrate/v4/cmd/migrate@latest\n\n# Run migrations\nmigrate -path ./migrations -database \"postgresql://username:password@localhost:5432/database_name?sslmode=disable\" up\n```\n\n### 4. Install Dependencies\n\n```bash\ngo mod download\n```\n\n### 5. Run the Application\n\n```bash\ngo run cmd/main.go\n```\n\nThe API will be available at `http://localhost:8080`\n\n## API Documentation\n\nOnce the server is running, visit:\n- Swagger UI: `http://localhost:8080/docs/`\n- API Base: `http://localhost:8080/api`\n\n## Deployment\n\n### Using the Deployment Script\n\nThe project includes a deployment script that requires environment variables:\n\n```bash\n# Set deployment configuration\nexport DEPLOY_SERVER=\"user@your-server-ip\"\nexport DEPLOY_KEY_PATH=\"$HOME/.ssh/your_key\"\nexport REMOTE_DIR=\"/path/to/remote/directory\"  # optional\nexport BINARY_NAME=\"jobseeker\"                # optional\n\n# Run deployment\n./deploy/deploy.sh\n```\n\n### Manual Deployment\n\n1. Build the binary:\n```bash\nGOOS=linux GOARCH=amd64 go build -o jobseeker ./cmd\n```\n\n2. Copy to your server:\n```bash\nscp jobseeker user@server:/path/to/app/\nscp .env.prod user@server:/path/to/app/.env\n```\n\n3. Set up systemd service (see `deploy/jobseeker.service`)\n\n## Environment Variables\n\n| Variable | Description | Required | Default |\n|----------|-------------|----------|---------|\n| `ENVIRONMENT` | Application environment | No | `development` |\n| `PORT` | Server port | No | `8080` |\n| `GIN_MODE` | Gin framework mode | No | Auto-detected |\n| `JWT_SECRET` | JWT signing secret | **Yes** | - |\n| `TOKEN_LIFETIME` | JWT token lifetime | No | `24h` |\n| `ALLOWED_ORIGINS` | CORS allowed origins (comma-separated) | No | Allow all |\n| `STATIC_PATH` | Static files directory path | No | `./uploads` |\n| `STATIC_URL` | Static files URL prefix | No | `/static` |\n| `UPLOADS_PATH` | File uploads directory | No | `./uploads` |\n| `API_PREFIX` | API routes prefix | No | `/api` |\n| `DATABASE_URL` | Full database connection string | No | - |\n| `DB_HOST` | Database host | No* | `localhost` |\n| `DB_PORT` | Database port | No* | `5432` |\n| `DB_USER` | Database username | No* | - |\n| `DB_PASSWORD` | Database password | No* | - |\n| `DB_NAME` | Database name | No* | - |\n| `DB_SSLMODE` | SSL mode | No | `disable` |\n| `DB_MAX_OPEN_CONNS` | Max open database connections | No | `25` |\n| `DB_MAX_IDLE_CONNS` | Max idle database connections | No | `5` |\n| `ENV_FILE` | Environment file path | No | `.env` |\n\n*Required if `DATABASE_URL` is not provided\n\n## Project Structure\n\n```\ncareer-pulse-backend/\n├── cmd/                    # Application entry point\n├── config/                 # Configuration management\n├── db/                     # Database connection\n├── handlers/               # HTTP request handlers\n├── middleware/             # Custom middleware\n├── models/                 # Data models\n├── repos/                  # Repository layer\n├── migrations/             # Database migrations\n├── docs/                   # Auto-generated API docs\n├── deploy/                 # Deployment scripts\n└── uploads/                # File upload directory\n```\n\n## Security Considerations\n\n- Never commit `.env` files or other sensitive configuration\n- Use strong, unique JWT secrets in production\n- Enable SSL for database connections in production\n- Regularly rotate JWT secrets\n- Use environment-specific configurations\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Test thoroughly\n5. Submit a pull request\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxorbit01%2Fcareer-pulse-backend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxorbit01%2Fcareer-pulse-backend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxorbit01%2Fcareer-pulse-backend/lists"}