api.egytech.fyi provides comprehensive data and statistics on participants in the tech industry. Easily retrieve information on job titles, experience levels, compensation, and more. Powered by Cloudflare Workers. 🚀
MIT License
This project provides APIs to retrieve and analyze participants' data in the tech industry. It uses the Hono framework for building the API and Jest for testing.
Ensure you have the following installed:
Clone the repository:
git clone https://github.com/your-username/tech-scene-api.git
cd tech-scene-api
Install dependencies:
npm install
# or
yarn install
Start the development server with Wrangler:
npm run dev
# or
yarn dev
The server should now be running at http://localhost:8787
.
To run the test suite:
npm test
# or
yarn test
Deploy the application using Wrangler:
npm run deploy
# or
yarn deploy
Endpoint: /participants
Method: GET
Query Parameters:
title
(string): Job titlelevel
(string): Job levelgender
(string): Gendercs_degree
(string): CS Degree (yes/no)business_market
(string): Business market (global/regional/local)business_size
(string): Business size (large/medium/small)business_focus
(string): Business focus (product/software_house)business_line
(string): Business line (b2b/b2c/both)yoe_from_included
(number): Years of experience fromyoe_to_excluded
(number): Years of experience toprogramming_language
(string): Programming languageinclude_relocated
(string): Include relocated (true/false)include_remote_abroad
(string): Include remote abroad (true/false)Example Request:
curl "http://localhost:8787/participants?title=backend&level=senior"
Example Response:
[
{
"title": "Backend Engineer",
"level": "Senior",
"gender": "Male",
"degree": "Yes",
"businessMarket": "Global",
"businessSize": "Large",
"businessFocus": "Product-based company",
"businessLine": "B2B",
"yearsOfExperience": 5,
"programmingLanguagues": "Python, Java, etc.",
"workSetting": "Office",
"isEgp": true,
"netCompensation": 120000,
"location": "Cairo"
}
]
Endpoint: /stats
Method: GET
Query Parameters:
title
(string)level
(string)gender
(string)cs_degree
(string)business_market
(string)business_size
(string)business_focus
(string)business_line
(string)yoe_from_included
(number)yoe_to_excluded
(number)programming_language
(string)include_relocated
(string)include_remote_abroad
(string)Example Request:
curl "http://localhost:8787/stats?title=backend&level=senior"
Example Response:
{
"stats": {
"totalCount": 150,
"median": 75000,
"p20Compensation": 50000,
"p75Compensation": 90000,
"p90Compensation": 120000
},
"buckets": [
{ "bucket": "0-3K", "count": 10 },
{ "bucket": "3-6K", "count": 20 },
// more buckets...
]
}
project-root/
src/
routes/
participants.ts
stats.ts
index.ts
utils/
queryHelpers.ts
maps.ts
config/
swaggerSpec.ts
types/
bindings.ts
app.ts
index.ts
tests/
utils/
queryHelpers.test.ts
package.json
tsconfig.json
jest.config.js
README.md
Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.
git checkout -b feature-branch
)git commit -m 'Add some feature'
)git push origin feature-branch
)This project is licensed under the MIT License. See the LICENSE file for details.
This README provides a comprehensive guide for setting up, running, and testing the project, as well as detailed API documentation and project structure information.