Giter VIP home page Giter VIP logo

github-explorer-mobile-clean-architecture's Introduction

License: MIT

Welcome to Github Explorer Mobile

Project directed to the study of clean architecture applied in a React Native application.

Proposal

It is an application to search for information about users registered on Github, to be able to see their repositories, their gists, their followers and who they are following. You can also view information specific to repositories, gists and other followers.

๐Ÿ“Œ Sumary

  • ๐Ÿ‘ท Installation
  • โš™๏ธ Test e2e with Detox
  • ๐Ÿ“‚ Architecture
  • ๐Ÿ“„ License

๐Ÿ‘ท Installation

You must have NodeJS (>= 10.13.0) and Yarn installed, and then:

git clone https://github.com/rubemfsv/Github-Explorer-Mobile-Clean-Architecture.git

First step:

cd Github-Explorer-Mobile-Clean-Architecture - to access the project folder

Second step:

yarn - to install dependencies

Third step:

yarn start - to start the project

Fourth step:

yarn android or yarn ios - to install the project in the emulator

โš™๏ธ Test e2e with Detox

First Step:

Adjust your emulator inside detox.config.js changing the device avdName

Second Step:

cd android - to access the android folder

Third Step: run ./gradlew assembleAndroidTest

Fourth Step: run yarn detox:debug to execute the tests

๐Ÿ“‚ Architecture

android/
e2e/
ios/
src/
  data/
    protocols/
    test/
    usecases/
  domain/
    enums/
    errors/
    models/
    test/
    usecases/
  infra/
    http/
    test/
  main/
    config/
    factories/
      http/
      screens/
      usecases/
    routes/
    App.tsx
  presentation/
    assets/
    components/
    screens/
    protocols/
    styles/
    utils/
  validation/
    errors/
    protocols/
    test/
    validators/

๐Ÿง‘โ€๐Ÿ’ป Contributors

Thanks to these wonderful people who have contributed in this project (emoji key):

Rubem Vasconcelos
Rubem Vasconcelos

๐Ÿšง๐Ÿ’ป๐Ÿ‘€
Joseph Martin
Joseph Martin

๐Ÿ“–
Bryan King Pecho
Bryan King Pecho

๐Ÿ“–
Vedant
Vedant

๐Ÿ“–
Atharva Salitri
Atharva Salitri

๐Ÿ“–
Manvi Haritwal
Manvi Haritwal

๐Ÿ“–

๐Ÿ“„ License

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

Please adhere to and review our Code Of Conduct.

github-explorer-mobile-clean-architecture's People

Contributors

ayushsgithub avatar bkpecho avatar ghost-vedant avatar jfmartinz avatar manviii27 avatar rubemfsv avatar the-amazing-atharva avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

github-explorer-mobile-clean-architecture's Issues

[DOCS] Create CODE_OF_CONDUCT.md and Add It to README.md

Description

Please create a CODE_OF_CONDUCT.md file that outlines our project's code of conduct and then add a reference to it in the README.md file.

Expected Behavior

A CODE_OF_CONDUCT.md file should be added to our project repository, containing clear and concise guidelines for acceptable behavior within our community. Additionally, the README.md file should be updated to include a link or section that points to the code of conduct for easy reference.

Actual Behavior

Currently, our project does not have a code of conduct explicitly defined or documented. It is essential to establish and communicate clear expectations for behavior to foster a respectful and inclusive community around our project.

Screenshots (if applicable)
N/A

Additional Information

Having a code of conduct is a crucial step in creating a welcoming and inclusive environment for all contributors and users. It sets expectations for respectful and professional interactions within the project community. Please consider using established code of conduct templates or guidelines when creating the CODE_OF_CONDUCT.md file.
Don't copy, but get inspired by: https://github.com/pact-foundation/pact-js/blob/master/CODE_OF_CONDUCT.md

[DOCS] Create CHANGELOG.md

Description

Please create a changelog.md file to document the changes, enhancements, and bug fixes made to our project over time.

Expected Behavior

The changelog.md file should be created in our project repository. It should follow a standardized format for documenting changes, including version numbers, release dates, and descriptions of changes made in each release.

Actual Behavior

Currently, we do not have a changelog file, making it challenging for users and contributors to track the progress and history of our project. By creating a changelog.md file, we can improve transparency and keep stakeholders informed about the evolution of our software.

Screenshots (if applicable)

N/A

Additional Information

Add any other context or information about the issue here.Having a changelog.md file is a common practice in software development. It serves as a valuable resource for users and contributors, helping them understand what has been added, modified, or fixed in each release. Please consider adopting a standard changelog format, and document changes in a clear and concise manner.
Example: https://github.com/rubemfsv/clean-react-app/

[DOCS] Create a GitHub PR Template

Description

Please create a GitHub PR (Pull Request) template to streamline the process of submitting and reviewing pull requests in our repository.

Expected Behavior

The PR template should serve as a standardized guide for contributors to provide essential information when submitting pull requests. It should include sections for a clear title, a detailed description of the changes, and any relevant context.

Actual Behavior

Currently, we don't have a PR template in place, which can lead to inconsistent or incomplete information being provided with PR submissions. Having a template will improve the PR submission process and make it easier for reviewers to understand and assess the changes.

Additional Information

Adding a PR template will contribute to better organization and communication within our project. It will help both contributors and reviewers by ensuring that necessary information is included with each PR, streamlining the review process, and reducing back-and-forth discussions. Please create the template based on common PR guidelines and best practices.

Follow the pact-js PR template pattern, but adapting to Clean React App context. Don't forget to ensure commit messages are following the conventional commits.

[SECURITY] Address Vulnerabilities by Updating Dependencies

Description

This task involves updating project dependencies to eliminate potential security vulnerabilities.

Expected Behavior

By updating dependencies, the project will be better protected against known vulnerabilities, enhancing its security posture.

Additional Information

This update is essential to maintain a secure and stable project environment. It will help prevent potential security breaches and ensure the project's long-term reliability.

[FEATURE] Implement Validation Layer

Description

This feature involves the creation of a validation layer within the project. The validation layer will be responsible for handling and enforcing data validation rules.

Expected Behavior

With the validation layer in place, the project will have a robust mechanism for validating user inputs and ensuring data integrity. This feature will enhance the overall quality of the application.

Additional Information

To get an idea of how to structure and implement the validation layer, you can refer to the example at https://github.com/rubemfsv/clean-react-app. This example provides a solid reference for designing and integrating a validation layer effectively.

[DOCS] Enhance README with Collaborators Sectio

The README file serves as a crucial source of information for our project. To foster transparency and acknowledge the valuable contributions from our team members and collaborators, we should add a dedicated "Collaborators" section to the README. This small but meaningful addition reflects our commitment to open collaboration and transparency.

Goals:

Tasks:

  1. Edit the README file to include a new section titled "Collaborators" (you can adjust the "Branches and contributions" section)
  2. Compile a list of project collaborators, including their names and informations.
  3. Ensure that the new section is formatted consistently with the rest of the README, maintaining readability and clarity.
  4. Verify that all information presented in the "Collaborators" section is up to date and accurate.
  5. Consider including any additional details or content that would enrich the collaborator profiles.

Guidelines:

  • Be respectful and accurate in the descriptions and acknowledgments of collaborators.
  • Keep the "Collaborators" section organized and easy to read.

[DOCS] Create CONTRIBUTING.md and Update README.md

Description

Please create a CONTRIBUTING.md file with detailed instructions for contributors and then update the README.md file to include a link to the CONTRIBUTING.md file.

Expected Behavior

The CONTRIBUTING.md file should be created, providing clear instructions on how contributors can contribute to our project. The README.md file should be updated to include a section with a link to the CONTRIBUTING.md file, making it easy for potential contributors to find the guidelines.

Actual Behavior

Currently, we lack a CONTRIBUTING.md file, which can make it challenging for new contributors to understand how they can get involved in our project effectively. By creating this file and linking it in the README, we can improve the onboarding experience for contributors.

Screenshots (if applicable)

N/A

Additional Information

Creating a CONTRIBUTING.md file is a standard practice in open-source projects. It helps maintainers and contributors collaborate more effectively by providing guidelines on code contributions, issue reporting, and other essential processes. Please refer to best practices and examples like the one found at pact-foundation/pact-js CONTRIBUTING.md to create our own CONTRIBUTING.md file.

[DOCS] Add MIT License and Update README.md

Description

Please add the MIT License to our project repository and update the README.md file accordingly.

Expected Behavior

The MIT License should be added to the project repository, and the README.md file should be modified to include information about the license, including a license badge and any relevant details about the license terms.

Actual Behavior

Currently, our project does not have a license specified, which can create confusion about how the code can be used and shared. It's essential to add a clear and permissive license to ensure that others can use the code with legal certainty.

Screenshots (if applicable)

N/A

Additional Information

By adding the MIT License and updating the README.md, we will make it clear to potential users and contributors how they can use, modify, and distribute the code. This action aligns with open-source best practices and ensures legal compliance. Please follow standard procedures for adding the MIT License to the repository. Example.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.