You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+5-4
Original file line number
Diff line number
Diff line change
@@ -17,10 +17,11 @@ To contribute to FreeAPI, please follow these guidelines:
17
17
18
18
1. Fork the repository on GitHub.
19
19
2. Clone your forked repository to your local machine.
20
-
3. Create a new branch for your feature or bug fix: `git checkout -b feat/your-feature-name` or `git checkout -b fix/your-bug-fix-name`.
21
-
4. Make your changes and commit them with descriptive messages: `git commit -am 'add your commit message'`.
22
-
5. Push your changes to your forked repository: `git push origin feat/your-feature-name`.
23
-
6. Submit a pull request to the main repository.
20
+
3. Create a new branch for your feature or bug fix: `git checkout -b feat/your-feature-name` or `git checkout -b fix/your-bug-fix-name` and make your changes.
21
+
4. Run all the tests 🧪 before committing the changes and make sure all tests are passed.
22
+
5. After all tests are passed, commit your changes with a descriptive messages: `git commit -am 'add your commit message'`.
23
+
6. Push your changes to your forked repository: `git push origin feat/your-feature-name`.
24
+
7. Submit a pull request to the main repository.
24
25
25
26
## Commit Message Format <aname="commit-message-format"></a>
Thank you for your interest in contributing to the FreeAPI project to help us deliver our APIs that are battlefield tested. To ensure reliability & stability for our end users, we utilize Playwright, a powerful testing framework to automate testing across all endpoints.
4
+
5
+
### Why Playwright?
6
+
7
+
After exploring our open-source community options such as Jest, Jasmine & Playwright. We decided to move forward with the playwright as it facilitates automated testing, offers cross-browser support, rich enough API with familiar syntax.
8
+
9
+
## ⚠️ Important Note:
10
+
11
+
### Before starting your contribution
12
+
13
+
- create an issue stating which module you will be working on
14
+
- in a given module if tests exist, we do not welcome them as long as it is a logical fix
15
+
- test coverage for example frontend apps are not our top priority
16
+
17
+
**IMPORTANT: Contributor must create an issue with [Testing Contribution](https://github.com/hiteshchoudhary/apihub/issues/new?assignees=&labels=testing&projects=&template=code_coverage.yaml&title=TESTING%3A+%3Ctitle%3E) issue template.**
18
+
19
+
This ensures coordination and prevents duplicated efforts.
Make sure you have the necessary dependencies of FreeAPI installed for the frontend framework or library you plan to use.
48
+
49
+
Follow this [README.md section](https://github.com/hiteshchoudhary/apihub/blob/main/README.md#-installation) to know more about setting up the FreeAPI environment
50
+
51
+
## Choosing a Module <aname="choosing-a-module"></a>
52
+
53
+
Decide which module you want to contribute to. Browse the `/apps`, `/public`, or `/kitchen-sink` modules to explore the available modules and APIs. Read the following section carefully to understand the folder structure you need to follow to increase your chances of getting your PR approved.
Follow the specified folder structure for your frontend application (**The folder names must not follow the camel casing to keep things consistent.**_Your actual project code folders may have camel casing_):
58
+
59
+
```
60
+
ROOT_FOLDER/e2e/{module}/
61
+
```
62
+
63
+
See the following examples with context for the above structure:
64
+
65
+
## Example: Todo endpoint testing
66
+
67
+
Imagine you want to test the todo endpoint that is part of `/apps` module of the FreeAPI project. To keep a consistent folder structure for backtracking name your files with name identifier, but with an extension of `.test.js`.
-`ROOT_FOLDER`: Refers to the root directory of the FreeAPI project.
78
+
79
+
-`e2e`: This directory is designated for including test cases.
80
+
81
+
-`{package}`: The directory contains typical of a Node.js application: `app.js` initializes the app, `controllers` handle requests, `models` define data structures, `routes` map endpoints, `utils` provide utilities, and others manage logging, authentication, and database interactions.
82
+
83
+
-`{module}`: `apps` or `public` or `kitchen-sink`: Denotes the chosen module (`/apps` for complex apps, `/public` for public APIs, `/kitchen-sink` for backend-related static APIs. These folders are already created officially).
84
+
85
+
-`{file-indicator}`: This is the actual file name indicator that helps to identify for which file you are writing test cases for example: `todo.test.js`
86
+
87
+
By following this standardized folder structure, contributors can easily organize their front-end projects, making it convenient for others to explore, understand, and replicate the implementation.
Ideally, we do not encourage you to include a new package. Confine your code practices within the available dependencies to avoid overheads. Please state with a clear explanation with examples if you add anything new.
101
+
102
+
## Submitting Your Contribution <aname="submitting-your-contribution"></a>
103
+
104
+
Click [here](https://github.com/hiteshchoudhary/apihub/blob/main/CONTRIBUTING.md) for a detailed contribution guide on submitting a PR.
105
+
106
+
Thank you for your contribution to FreeAPI! Your dedication helps make our APIs more accessible and valuable to the community. If you have any questions or need assistance, feel free to reach out to our [Discord](https://discord.gg/uuGBkhX8Yp).
107
+
108
+
Thank you for being part of the FreeAPI community and contributing to the project! We look forward to featuring your fantastic work. 🌟
Copy file name to clipboardExpand all lines: README.md
+72-38
Original file line number
Diff line number
Diff line change
@@ -77,44 +77,6 @@ This ensures that your work is not affected by the server resets and allows you
77
77
To self-host the FreeAPI.app application, you can take advantage of a pre-built template that is readily available.
78
78
[Click here for detailed docs](https://github.com/hiteshchoudhary/apihub/#-using-railway-one-click-deploy)
79
79
80
-
# How to contribute - Guidelines
81
-
82
-
## Contribute in core FreeAPI codebase:
83
-
84
-
We welcome your interest in contributing to our open source project!
85
-
86
-
To contribute to FreeAPI, please follow these steps:
87
-
88
-
1. Fork the repository.
89
-
2. Create a new branch for your feature or bug fix: `git checkout -b feat/your-feature-name` or `git checkout -b fix/your-bug-fix-name`.
90
-
3. Make your changes and commit them using conventional commit messages: `git commit -am "feat: Add new feature"`. For more details on the commit format and other guidelines, please refer to the [Contributor Guidelines](./CONTRIBUTING.md).
91
-
4. Push your changes to your forked repository: `git push origin feat/your-feature-name`.
92
-
5. Submit a pull request to the main repository, explaining the changes you've made and providing any necessary details.
93
-
94
-
Here's a guide on how you can effectively contribute to our API hub:
95
-
96
-
1. Pull Requests for Readme Updates: Please refrain from sending pull requests solely for updating the project's readme file. While we appreciate the importance of clear and concise documentation, we prefer to focus on substantial code contributions and feature enhancements.
97
-
98
-
2. Grammar Updates: Our team values effective communication, but we're not grammar sticklers. You don't need to send pull requests solely for grammar fixes or minor language improvements. Instead, concentrate on the core functionalities and features of the project.
99
-
100
-
3. Avoid Updating Existing Public APIs: To maintain stability and consistency, we discourage direct updates to existing public APIs within the API hub. These APIs have been thoroughly tested and approved. However, if you encounter any bugs or issues, we encourage you to open an issue on our project's issue tracker to notify us.
101
-
102
-
4. Build New Project APIs: We encourage you to explore your creativity and contribute by building complete project APIs. These APIs should provide comprehensive solutions that can assist developers in constructing complex projects to showcase their skills and abilities. Your contributions in this area will greatly benefit the community.
103
-
104
-
5. Draft a Proposal and Discuss on Discord: Before diving into your project, we recommend drafting a proposal. This can include a mind map or outline of the API you intend to build and its potential benefits. Join our Discord community, where you can share your proposal, discuss ideas, and gather feedback from fellow contributors. Engaging in these discussions will enhance your backend portfolio and help shape the future direction of the project.
105
-
106
-
We appreciate your enthusiasm and look forward to your valuable contributions to our open source API hub project.
107
-
108
-
Together, we can foster a collaborative environment and make a significant impact in the API integration landscape.
109
-
110
-
Click [here](https://github.com/hiteshchoudhary/apihub/blob/main/CONTRIBUTING.md) for detailed contribution guide.
111
-
112
-
## Contribute by creating frontend application:
113
-
114
-
Thank you for your interest in contributing to the FreeAPI project by creating frontend applications consuming FreeAPIs! Your efforts play a crucial role in enhancing the user experience and expanding the reach of our APIs. Please follow this guide to ensure a smooth and collaborative contribution process.
115
-
116
-
Click [here](https://github.com/hiteshchoudhary/apihub/blob/main/CONTRIBUTING_FRONTEND.md) for detailed contribution guide for Frontend Developers 🚀!
117
-
118
80
# 🏁 Installation
119
81
120
82
### 📦 Using Docker (recommended)
@@ -193,6 +155,78 @@ To self-host the FreeAPI.app application, you can take advantage of a pre-built
193
155
194
156
Note: Once the application is deployed, please wait for 3-5 minutes for the swagger docs to be available.
195
157
158
+
# 🧪 Testing
159
+
160
+
To ensure reliability & stability for our end users, we utilize Playwright, a powerful testing framework to automate testing across all endpoints.
161
+
162
+
### 💻 Run the Test Server
163
+
164
+
Make sure to add `MONGO_MEMORY_SERVER_PORT=10000` (mongodb port for e2e testing) in your `.env` file.
165
+
166
+
```bash
167
+
yarn start:test-server
168
+
```
169
+
170
+
### 🧪 Run Tests
171
+
172
+
```bash
173
+
yarn test:playwright
174
+
```
175
+
176
+
This will generate a Playwright report. To view this report run the following command
177
+
178
+
```bash
179
+
yarn playwright show-report
180
+
```
181
+
182
+
Make sure all the test cases are passed whenever you make any changes.
183
+
184
+
# How to contribute - Guidelines
185
+
186
+
## ⚡️ Contribute in core FreeAPI codebase:
187
+
188
+
We welcome your interest in contributing to our open source project!
189
+
190
+
To contribute to FreeAPI, please follow these steps:
191
+
192
+
1. Fork the repository.
193
+
2. Create a new branch for your feature or bug fix: `git checkout -b feat/your-feature-name` or `git checkout -b fix/your-bug-fix-name` and make your changes.
194
+
3. Run all the tests 🧪 before committing the changes and make sure all tests are passed.
195
+
4. After all tests are passed, commit your changes with a descriptive messages: `git commit -am 'add your commit message'`
196
+
5. For more details on the commit format and other guidelines, please refer to the [Contributor Guidelines](./CONTRIBUTING.md).
197
+
6. Push your changes to your forked repository: `git push origin feat/your-feature-name`.
198
+
7. Submit a pull request to the main repository, explaining the changes you've made and providing any necessary details.
199
+
200
+
Here's a guide on how you can effectively contribute to our API hub:
201
+
202
+
1. Pull Requests for Readme Updates: Please refrain from sending pull requests solely for updating the project's readme file. While we appreciate the importance of clear and concise documentation, we prefer to focus on substantial code contributions and feature enhancements.
203
+
204
+
2. Grammar Updates: Our team values effective communication, but we're not grammar sticklers. You don't need to send pull requests solely for grammar fixes or minor language improvements. Instead, concentrate on the core functionalities and features of the project.
205
+
206
+
3. Avoid Updating Existing Public APIs: To maintain stability and consistency, we discourage direct updates to existing public APIs within the API hub. These APIs have been thoroughly tested and approved. However, if you encounter any bugs or issues, we encourage you to open an issue on our project's issue tracker to notify us.
207
+
208
+
4. Build New Project APIs: We encourage you to explore your creativity and contribute by building complete project APIs. These APIs should provide comprehensive solutions that can assist developers in constructing complex projects to showcase their skills and abilities. Your contributions in this area will greatly benefit the community.
209
+
210
+
5. Draft a Proposal and Discuss on Discord: Before diving into your project, we recommend drafting a proposal. This can include a mind map or outline of the API you intend to build and its potential benefits. Join our Discord community, where you can share your proposal, discuss ideas, and gather feedback from fellow contributors. Engaging in these discussions will enhance your backend portfolio and help shape the future direction of the project.
211
+
212
+
We appreciate your enthusiasm and look forward to your valuable contributions to our open source API hub project.
213
+
214
+
Together, we can foster a collaborative environment and make a significant impact in the API integration landscape.
215
+
216
+
Click [here](https://github.com/hiteshchoudhary/apihub/blob/main/CONTRIBUTING.md) for detailed contribution guide.
217
+
218
+
## 🚀 Contribute by creating frontend application:
219
+
220
+
Thank you for your interest in contributing to the FreeAPI project by creating frontend applications consuming FreeAPIs! Your efforts play a crucial role in enhancing the user experience and expanding the reach of our APIs. Please follow this guide to ensure a smooth and collaborative contribution process.
221
+
222
+
Click [here](https://github.com/hiteshchoudhary/apihub/blob/main/CONTRIBUTING_FRONTEND.md) for detailed contribution guide for Frontend Developers 🚀!
223
+
224
+
## 🧪 Contribute in testing suite
225
+
226
+
Thank you for your interest in contributing to the FreeAPI project to increase code coverage of our API service that helps us to ship robust endpoints that are battlefield tested. Please follow this guide to ensure a smooth and collaborative contribution process.
227
+
228
+
Click [here](https://github.com/hiteshchoudhary/apihub/blob/main/CONTRIBUTING_CODE_COVERAGE.md) for detailed contribution guide for increasing code coverage.
0 commit comments