InterfaceHive is a platform that connects project owners with contributors, making it easier for people to access opportunities to contribute to open source or real-world applications. The platform enables users in need of assistance to receive contributions from multiple collaborators through an intuitive web interface.
InterfaceHive aims to lower the barrier of entry for contributing to projects by:
- Providing a platform where project owners can list opportunities
- Allowing contributors to find projects that match their skills
- Facilitating collaboration between multiple contributors on a single project
- Streamlining the contribution process through an intuitive interface
Before setting up the project locally, ensure you have the following installed:
- Node.js (v16.x or later)
- npm (v8.x or later) or Yarn (v1.22.x or later)
- Angular CLI (v15.x or later)
- Git
You can check your installed versions with:
node --version
npm --version
ng version
git --version-
Clone the repository:
git clone https://github.com/your-organization/InterfaceHive.git cd InterfaceHive -
Install dependencies:
npm install
Or if you're using Yarn:
yarn install
-
Install Angular CLI globally if you haven't already:
npm install -g @angular/cli
-
Create a local environment file:
cp src/environments/environment.sample.ts src/environments/environment.ts
-
Update the environment.ts file with your local configuration values:
export const environment = { production: false, apiUrl: 'http://localhost:4000/api', // Add other environment variables as needed };
-
Start the development server:
ng serve
-
Open your browser and navigate to:
http://localhost:4200 -
For running with a specific configuration:
ng serve --configuration=dev
-
To build the application for production:
ng build --configuration=production
- Make sure all dependencies are installed correctly with
npm install - Clear the npm cache with
npm cache clean --forceand try reinstalling
If port 4200 is already in use, you can specify a different port:
ng serve --port 4201This usually means Angular CLI wasn't installed correctly. Try:
npm install --save-dev @angular/compiler-cliIf you encounter version mismatch errors, ensure all Angular packages are on the same version:
ng update @angular/core @angular/cli- Check for template syntax errors in your components
- Ensure all variables used in templates are defined in the component class
- Make sure any functions called from templates don't rely on external context
If you encounter node-sass binding issues:
npm rebuild node-sassAngular has strict peer dependency requirements. Address warnings with:
npm install --legacy-peer-deps- main: Production-ready code
- beta: Integration branch for testing features before production
- feature/[feature-name]: Development branches for new features
- bugfix/[bug-name]: Branches for bug fixes
- hotfix/[issue-name]: Emergency fixes that may go directly to main after review
All development work should be based on and merged back to the beta branch, not main.
Follow this format for commit messages:
<type>(<scope>): <subject>
<body>
<footer>
Types:
- feat: A new feature
- fix: A bug fix
- docs: Documentation only changes
- style: Changes that don't affect code functionality (formatting, etc.)
- refactor: Code change that neither fixes a bug nor adds a feature
- perf: Code change that improves performance
- test: Adding or correcting tests
- chore: Changes to build process or auxiliary tools
Example:
feat(auth): implement user authentication
- Add login component
- Create authentication service
- Implement JWT token storage
Resolves: #123
-
Create a feature branch from beta:
git checkout beta git pull git checkout -b feature/your-feature-name
-
Make your changes and push to your branch:
git add . git commit -m "feat(component): add new feature" git push origin feature/your-feature-name
-
Create a Pull Request to the beta branch (NOT main)
-
Requirements for merging:
- At least 1 approved review is required
- All CI checks must pass
- No merge conflicts
- PR description must clearly explain the changes and reference any related issues
-
After approval, the PR can be merged into beta
-
Regular releases will merge beta into main after thorough testing
Remember, never merge directly to main. All changes must go through beta first.
Hi :)