Skip to content

Commit

Permalink
Update README.md, CONTRIBUTING.md, LICENSE.md
Browse files Browse the repository at this point in the history
  • Loading branch information
wajeshubham committed Jul 13, 2023
1 parent b97bc85 commit c40445a
Show file tree
Hide file tree
Showing 4 changed files with 75 additions and 83 deletions.
43 changes: 12 additions & 31 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# Contributing to ApiHub
# Contributing to FreeAPI

Thank you for your interest in contributing to ApiHub! We welcome contributions from the software community to help improve and enhance this project.
Thank you for your interest in contributing to FreeAPI! We welcome contributions from the software community to help improve and enhance this project.

By contributing, you can help make ApiHub a more valuable resource for developers and contribute to the growth of the open-source community.
By contributing, you can help make FreeAPI a more valuable resource for developers and contribute to the growth of the open-source community.

## How to Contribute

To contribute to ApiHub, please follow these guidelines:
To contribute to FreeAPI, please follow these guidelines:

1. Fork the repository on GitHub.
2. Clone your forked repository to your local machine.
Expand All @@ -17,37 +17,18 @@ To contribute to ApiHub, please follow these guidelines:

## Guidelines for Contribution

To ensure smooth and effective collaboration, please adhere to the following guidelines:
Here's a guide on how you can effectively contribute to our API hub:

### Branching and Committing
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.

- Follow the [Git Flow](https://nvie.com/posts/a-successful-git-branching-model/) branching model for your feature branches.
- Write clear and descriptive commit messages for each commit.
- Make sure each commit represents a logical unit of change.
- Keep your commits focused and avoid including unrelated changes.
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.

### Code Quality
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.

- Write clean and readable code following the project's coding conventions and style guidelines.
- Maintain consistent indentation and formatting.
- Include appropriate comments to enhance code understandability.
- Ensure your changes do not introduce any linting errors or warnings.
- Run tests locally to verify that your changes do not break existing functionality.
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.

### Documentation
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.

- Provide clear and concise documentation for new features, APIs, or significant changes.
- Update relevant sections of the README.md file to reflect any changes or additions.
- Include inline comments in the code to explain complex logic or provide additional context.
We appreciate your enthusiasm and look forward to your valuable contributions to our open source API hub project.

### Communication and Collaboration

- Be respectful and considerate towards other contributors and maintain a positive and inclusive environment.
- Participate in discussions and provide constructive feedback when appropriate.
- Respond to comments and suggestions in a timely manner.

## Getting Help

If you have any questions or need assistance, feel free to reach out by creating an issue or leaving a comment on the relevant pull request. We are here to help and guide you through the contribution process.

Thank you for your interest in contributing to ApiHub. Your contributions are highly appreciated, and we look forward to collaborating with you to make this project even better!
Together, we can foster a collaborative environment and make a significant impact in the API integration landscape.
2 changes: 1 addition & 1 deletion LICENSE.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

ApiHub
FreeAPI

Copyright (c) 2023 Hitesh Choudhary

Expand Down
111 changes: 60 additions & 51 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,92 +1,101 @@
# 🧊 ApiHub
# FreeAPI.app

ApiHub is an open-source project aimed at helping developers quickly get up and running with a backend by running a single Docker Compose command.
## Problem

It provides a collection of backend APIs covering various domains, along with essential concepts and full-blown applications.
We are trying to build a single source API hub that can be used to learn api handling in any programming language. Users can build their front end portfolio in web and mobile apps using this api hub.

It empowers developers to consume these APIs, enabling them to build projects that enhance their API handling skills and facilitate their growth as software developers.
# What is FreeAPI.app

By utilizing these APIs, developers can gain hands-on experience in working with APIs, honing their skills, and gaining a deeper understanding of API integration and usage.
The FreeAPI project is an innovative and community-driven initiative aimed at providing developers with free and accessible APIs for their projects.

[Jump to the setup](#-installation)
The project focuses on delivering a wide range of APIs that cater to various domains and functionalities, enabling developers to seamlessly integrate these APIs into their applications.

## 🧰 Usage
Key highlights of the FreeAPI project include:

This project is designed to simplify backend development and provide a wide range of APIs for different use cases. Here are the key sections of the project:
1. **Accessibility:** The FreeAPI project is committed to eliminating barriers by providing free access to its collection of APIs.
Developers can leverage these APIs without any cost limitations, allowing them to experiment, learn, and build innovative applications.

### 📢 Public APIs
2. **Diverse API Collection:** The project offers a diverse and comprehensive collection of APIs that span across different industries, domains, and functionalities.
Whether you require social media integrations, payment gateways, machine learning algorithms, or IoT device connectivity, the FreeAPI project has you covered.

The **Public APIs** section provides a collection of APIs that offer random data generation for users, books, meals, dogs, cats, jokes, quotes, and more.
3. **Simplified Integration:** The FreeAPI project understands the challenges developers face when integrating APIs into their applications. To address this, the project provides clear documentation, code samples, and SDKs, simplifying the integration process and reducing development time and effort.

Developers can leverage these APIs to integrate dynamic content into their applications.
4. **Community-Driven Development:** The project fosters a vibrant and collaborative community of developers. Contributors are encouraged to share their knowledge, engage in discussions, and collaborate on API-related projects. This collective effort ensures the continuous improvement and reliability of the APIs offered by the FreeAPI project.

### 🚰 Kitchen Sink
5. **Learning and Skill Development:** The FreeAPI project aims to empower developers by providing a platform for learning and skill development. Through access to various APIs and educational resources, developers can enhance their understanding of API integration, expand their knowledge, and showcase their expertise through building complete projects.

The **Kitchen Sink** section covers essential concepts and functionalities necessary for backend development.
Overall, the FreeAPI project is a valuable resource for developers seeking accessible and diverse APIs.

It includes APIs for HTTP request methods, status codes, cookies, redirects, image responses, request and response inspections, and more. We will continue to add more concepts and functionalities over time.
By fostering a supportive community, the project empowers developers to learn, create, and innovate, ultimately contributing to the growth and advancement of the API integration landscape.

### 🏟️ Full-Blown Apps
## Features:

The **Full-Blown Apps** section features major application APIs, including Todo list, ecommerce, social media, and authentication.
Introducing our groundbreaking open source API hub project, a dynamic platform designed to revolutionize the way developers interact with APIs.

These APIs provide a starting point for building robust applications in their respective domains. We have plans to add more full-blown applications in the future.
With an emphasis on openness, accessibility, and learning, our API hub empowers developers of all levels to explore, experiment, and grow their skills in API integration.

## 🏁 Installation
Highlights:

To run the ApiHub project, follow these steps:
1. **Open Source:** Our API hub is built on the principles of open source, ensuring transparency, collaboration, and community-driven development. This means that the source code is freely available, allowing developers to customize, extend, and contribute to the project.

1. Install [Docker](https://www.docker.com/) on your machine.
2. Clone the project repository.
3. Navigate to the project directory.
4. Create `.env` file in the root folder and copy paste the content of `.env.sample`, and add necessary credentials.
5. Run the Docker Compose command:
2. **Free to Use:** We firmly believe in removing barriers to entry, which is why our API hub is completely free to use. Whether you're a seasoned developer or just starting your coding journey, you can leverage our platform without any cost limitations.

```bash
docker-compose up --build
```
3. **Local or Deployment**: Flexibility is at the core of our API hub. You have the option to use it locally, running on your own machine, or deploy it to a server, making it accessible to others. This versatility ensures that you can adapt the platform to your specific development environment.

5. Access the project APIs at the specified endpoints.
4. **Learning Resource**: Our API hub is designed as a comprehensive learning resource, offering a wealth of educational materials, tutorials, and documentation. Whether you're a beginner or seeking to expand your API knowledge, our platform provides the resources you need to learn and improve.

Boom 💥, no need to install NodeJs, MongoDB separately.
5. **Custom Endpoints for Beginners**: For developers at the beginner level, our API hub offers custom endpoints that provide a hands-on experience in handling API responses. These beginner-friendly APIs allow you to practice and familiarize yourself with the basics of working with APIs.

# 📜 Swagger Docs
6. **Advanced APIs for Portfolio Building**: In addition to beginner-level endpoints, our API hub also provides advanced APIs to challenge and stretch your skills. These APIs enable you to tackle more complex integration scenarios, helping you build a robust portfolio of projects to showcase your expertise.

[Swagger Docs](http://localhost:8080/api/v1/docs/): http://localhost:8080/api/v1/docs/
By combining open source principles, accessibility, and a focus on learning, our API hub project paves the way for developers to thrive in the world of API integration. Join our vibrant community and embark on an exciting journey of discovery, growth, and innovation.

### How to contribute - Guidelines

## 👏🏼 Contributing
We welcome your interest in contributing to our open source project!

We welcome contributions from the software community. To contribute to ApiHub, please follow these guidelines:
To contribute to ApiHub, please follow these steps:

1. Fork the repository.
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`.
3. Make your changes and commit them with descriptive messages: `git commit -am 'Add your commit message'`.
4. Push your changes to your forked repository: `git push origin feat/your-feature-name`.
5. Submit a pull request to the main repository, explaining the changes you've made and providing any necessary details.

Please adhere to the following industry standards and best practices when contributing:
Here's a guide on how you can effectively contribute to our API hub:

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.

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.

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.

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.

- Follow the [Git Flow](https://nvie.com/posts/a-successful-git-branching-model/) branching model for your feature branches.
- Write clean and concise code that adheres to the project's coding conventions and style guidelines.
- Provide detailed documentation and updates to the relevant sections if necessary.
- Be respectful and professional in all interactions and discussions.
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.

We appreciate your contributions and look forward to collaborating with you!
We appreciate your enthusiasm and look forward to your valuable contributions to our open source API hub project.

Together, we can foster a collaborative environment and make a significant impact in the API integration landscape.

Click [here](https://github.com/hiteshchoudhary/apihub/blob/dev/CONTRIBUTING.md) for details contribution guide.

## 🔩 Stack Used
## 🏁 Installation

To run the ApiHub project, follow these steps:

1. Install [Docker](https://www.docker.com/) on your machine.
2. Clone the project repository.
3. Navigate to the project directory.
4. Create `.env` file in the root folder and copy paste the content of `.env.sample`, and add necessary credentials.
5. Run the Docker Compose command:

```bash
docker-compose up --build
```

- [Docker](https://www.docker.com/)
- [Express.js](https://expressjs.com/)
- [JavaScript](https://developer.mozilla.org/en-US/docs/Web/JavaScript)
- [Node.js](https://nodejs.org/)
- [Nodemon](https://nodemon.io/)
- [Faker.js](https://github.com/faker-js/faker)
- [Multer](https://github.com/expressjs/multer)
- [Mongoose](https://mongoosejs.com/)
- [MongoDB](https://www.mongodb.com/)
6. Access the project APIs at the specified endpoints.

## 🚀 Future Development
# 📜 Swagger Docs

ApiHub is an ongoing project, and we have plans to continuously enhance it by adding more applications 🚀, APIs 🛠️, and kitchen sink 🚰 concepts. Stay tuned for updates 👀!
[Swagger Docs](http://localhost:8080/api/v1/docs/): http://localhost:8080/api/v1/docs/
2 changes: 2 additions & 0 deletions src/constants.js
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@ export const AvailableSocialLogins = Object.values(UserLoginType);

export const MAXIMUM_SUB_IMAGE_COUNT = 4;
export const MAXIMUM_SOCIAL_POST_IMAGE_COUNT = 6;

// ! REFACTOR: change name "apihub" everywhere in the codebase to "freeapi" (low priority)
export const DB_NAME = "apihub";

export const paypalBaseUrl = {
Expand Down

0 comments on commit c40445a

Please sign in to comment.