OpenRim is an open-source organization dedicated to fostering innovation through collaborative development. We believe in the power of community to build robust, transparent, and impactful software solutions for a better world.
This repository contains the official website for OpenRim. The website serves as a central hub for our community, showcasing our projects, explaining our mission, and providing clear guidelines for contributions. It is designed to be modern, responsive, and multilingual, supporting English, French, and Arabic (RTL).
- Frontend: React 18+ with TypeScript
- CSS Framework: Bootstrap 5.3+
- Routing: React Router DOM v6
- Internationalization: react-i18next
- Build Tool: Vite
- Icons: Lucide React
- Animations: Framer Motion (optional)
Follow these instructions to get a copy of the project up and running on your local machine for development and testing purposes.
Make sure you have Node.js (LTS version recommended) and npm (or Yarn) installed on your system.
- Clone the repository:
git clone https://github.com/openrim/openrim.git cd openrim - Install dependencies:
npm install # or yarn install
To start the development server and view the website in your browser:
npm run dev
# or yarn devThe application will typically be available at http://localhost:3000.
We welcome contributions from everyone! Whether you're a seasoned developer or just starting out, your input is valuable. Please take a moment to review our contribution guidelines.
- Fork the Repository: Create a personal copy of the original repository on your GitHub account. This is your workspace where you can make changes without affecting the main project.
- Clone Your Fork: Download your forked repository to your local machine.
- Create a Branch: For each new feature or bug fix, create a new branch in your local repository. This isolates your changes and makes it easier to manage multiple contributions.
- Make Your Changes: Work on your branch, writing code, fixing bugs, or adding features.
- Commit Your Changes: Save your changes with clear and descriptive commit messages.
- Push to Your Fork: Upload your local changes to your forked repository on GitHub.
- Open a Pull Request (PR): Propose your changes to the original repository via a Pull Request. Project maintainers will review your code, discuss changes, and merge your work if everything is in order.
-
Fork the Repository on GitHub:
- Go to the OpenRim project GitHub page (e.g.,
https://github.com/openrim/openrim). - Click the "Fork" button in the top right corner of the page.
- Follow the instructions to create a fork on your GitHub account. You will now have a repository like
https://github.com/your-username/openrim.
- Go to the OpenRim project GitHub page (e.g.,
-
Clone Your Fork to Your Local Machine:
- Open your terminal or command prompt.
- Clone your fork using the
git clonecommand:git clone https://github.com/your-username/openrim.git cd openrim - Add the original repository as "upstream" (this allows you to fetch the latest changes from the main project):
git remote add upstream https://github.com/openrim/openrim.git
- You can verify your remotes with
git remote -v.
OpenRim is committed to providing a welcoming and inclusive environment for all. Please read and adhere to our Code of Conduct to ensure a positive experience for everyone.
For detailed step-by-step instructions on how to contribute, including development setup, please visit our Contribute page on the website.
If you find a bug or have a feature request, please open an issue on our GitHub Issues page. Provide as much detail as possible to help us understand and reproduce the problem.
- Fork the repository and create your branch from
main. - Ensure your code adheres to the project's coding style and conventions.
- Write clear, concise commit messages.
- Ensure your changes pass all build and linting checks (
npm run buildandnpm run lint). - Open a pull request to the
mainbranch, describing your changes in detail.
Clear and concise commit messages are essential for tracking changes and collaboration. They should explain why a change was made, not just what was changed.
Recommended Structure:
<type>: <short, concise description>
<body of message (optional)>
<footer (optional, e.g., issue references)>
Common Commit Types:
feat: A new feature.fix: A bug fix.docs: Documentation changes only.style: Changes that do not affect the meaning of the code (white-space, formatting, missing semicolons, etc.).refactor: A code change that neither fixes a bug nor adds a feature.test: Adding missing tests or correcting existing tests.chore: Updates to build tasks, dependency configurations, etc. (no production code changes).perf: A code change that improves performance.ci: Changes to CI configuration files and scripts.build: Changes that affect the build system or external dependencies (npm, vite, etc.).
Examples of Good Commit Messages:
-
New Feature:
feat: add dark mode toggle to header This commit introduces a new dark mode feature, allowing users to switch between light and dark themes. The preference is persisted in localStorage. -
Bug Fix:
fix: correct RTL text alignment in footer Resolves an issue where text in the footer was not correctly aligned when the language was set to Arabic (RTL). -
Documentation Update:
docs: update contributing guidelines in README Added a new section on how to fork the repository and clarified the pull request submission process. -
Refactoring:
refactor: extract theme logic into useTheme hook Moved theme state management and localStorage persistence from App.tsx into a dedicated custom hook for better separation of concerns.
This project is licensed under the MIT License. See the LICENSE file for more details.