Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Documentation #48

Merged
merged 16 commits into from
Nov 4, 2021
219 changes: 219 additions & 0 deletions LICENSE

Large diffs are not rendered by default.

84 changes: 12 additions & 72 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,79 +1,19 @@
# SOCIS Website

This is the official website for the Society of Computing and Information Sciences (SOCIS) at the University of Guelph.

This project was built using [React](https://reactjs.org/) and bootstrapped with [Create React App](https://github.com/facebook/create-react-app).



## How to run

1. [First fork this repository](https://docs.github.com/en/github/getting-started-with-github/fork-a-repo)
2. Clone this repository to your local machine
3. Install dependencies using `yarn install`
4. Run the server locally using `yarn start`. This will open the server on `localhost:8300` in your browser
5. To run tests enter `yarn test`, this will lanch the test runner in interactive watch mode. Select `a` to run all tests
6. To run linter enter `yarn lint`, to autofix linter errors, run `yarn lint-fix`

## Build and run using docker

1. Build: `docker build -t socis-web .`
2. run: `docker run -p 8080:80 socis-web:latest`
3. go too the url http://localhost:8080 and see the amazing version of the site.

## Available Scripts

In the project directory, you can run:

`yarn start`

Runs the app in the development mode.\
Open [http://localhost:3000](http://localhost:3000) to view it in the browser.

The page will reload if you make edits.\
You will also see any lint errors in the console.

`yarn test`
![CI testing](https://github.com/UoGSOCIS/socis_website/workflows/CI/badge.svg)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I still think we should add some links here to the docs stuff. looking at a git repo people will normally just look at the readme and not go searching for things, I have never assumed that the docs folder would hold docs for me as a potential contributor, but rather I often assume that they are docs that go along with the project.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To be fair does anyone read the documentation XD. But as an alternative, what if we put everything in the wiki instead? Might be the option that makes the most sense, and include very basic instructions on how to run in the README?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree wiki might be good for some of that, as long as there is at least a link to it from the readme, basic instructions in readme + more detail in wiki / docs works too (that is my preferred method). I really like readme's that include a quickstart then detailed usage is linked elsewhere


Launches the test runner in the interactive watch mode.\
See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
![SOCIS Logo](src/assets/socis_logo.png)

`yarn build`

Builds the app for production to the `build` folder.\
It correctly bundles React in production mode and optimizes the build for the best performance.

The build is minified and the filenames include the hashes.\
Your app is ready to be deployed!

See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.

## Learn More

You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).

To learn React, check out the [React documentation](https://reactjs.org/).

### Code Splitting

This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting)

### Analyzing the Bundle Size

This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size)

### Making a Progressive Web App

This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app)

### Advanced Configuration
# SOCIS Website

This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration)
This is the official website for the Society of Computing and Information Sciences (SOCIS) at the University of Guelph.

### Deployment
## Contributors

This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment)
- Sooraj Modi
- Ben Pearo
- Marshall Asch
- Zaza Hashmi
- Danindu Marasinghe

### `yarn build` fails to minify
## License

This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify)
GNU GENERAL PUBLIC LICENSE v3
23 changes: 23 additions & 0 deletions docs/Accessibility.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Accessibility

This document outlines the accessibility information for the website.

## Alt-text

All images include alt text, a short description of the image.

## Color

The primary colors used in this website are:

![Red](https://swatch.now.sh/?color=%23660000)
![Dark Grey](https://swatch.now.sh/?color=%23465052)
![Off White](https://swatch.now.sh/?color=%23F5F5F5)
![White](https://swatch.now.sh/?color=%23FFFFFF)
![Black](https://swatch.now.sh/?color=%23000000)

Contrast ratio between `#FFFFFF` (foreground) and `#660000` (background) is 13.41:1.

Contrast ratio between `#000000` (foreground) and `#F5F5F5` (background) is 19.26:1.

Contrast ratio between `#FFFFFF` (foreground) and `#465052` (background) is 8.3:1.
71 changes: 71 additions & 0 deletions docs/CodeOfConduct.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# Contributor Covenant Code of Conduct

## Our Pledge

In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, gender identity and expression, level of experience,
education, socio-economic status, nationality, personal appearance, race,
religion, or sexual identity and orientation.

## Our Standards

Examples of behavior that contributes to creating a positive environment
include:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting

## Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.

## Scope

This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at soorajmodi@hotmail.com. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org/), version 1.4,
available [here](https://www.contributor-covenant.org/version/1/4/code-of-conduct.html)
63 changes: 63 additions & 0 deletions docs/Contributing.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# Contributing
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

rename to CONTRIBUTING.md (caps) and link to this file from the README

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wanted to keep all the docs in the same format with camel case titles, for consistency. I know its not how its typically done, but I like it a bit better this way.

Added the link

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I dont think the link is present anymore


A big welcome and thank you for considering contributing to the SOCIS website! It’s people like you that make it a reality for users in our community.

Reading and following these guidelines will help us make the contribution process easy and effective for everyone involved.

It also communicates that you agree to respect the time of the developers managing and developing these open source projects.

In return, we will reciprocate that respect by addressing your issue, assessing changes, and helping you finalize your pull requests.

## Quicklinks

* [Code of Conduct](#code-of-conduct)
* [Getting Started](#getting-started)
* [Issues](#issues)
* [Pull Requests](#pull-requests)
* [Getting Help](#getting-help)

## Code of Conduct

We take our open source community seriously and hold ourselves and other contributors to high standards of communication.
By participating and contributing to this project, you agree to uphold our [Code of Conduct](https://github.com/UoGSOCIS/socis_website/blob/main/docs/CodeOfConduct.md).

## Getting Started

Contributions are made to this repo via Issues and Pull Requests (PRs). A few general guidelines that cover both:

- To report security vulnerabilities, please contact the SOCIS exec directly at exec@socis.ca.
- Search for existing Issues and PRs before creating your own.
- We work hard to makes sure issues are handled in a timely manner but, depending on the impact, it could take a while to investigate the root cause. A friendly ping in the comment thread to the submitter or a contributor can help draw attention if your issue is blocking.
- If you've never contributed before, see [this link](https://opensource.guide/how-to-contribute/) for resources and tips on how to get started.

### Issues

Issues should be used to report problems with the website, request a new feature, or to discuss potential changes before a PR is created. When you create a new Issue, a template will be loaded that will guide you through collecting and providing the information we need to investigate.

If you find an Issue that addresses the problem you're having, please add your own reproduction information to the existing issue rather than creating a new one. Adding a [reaction](https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) can also help be indicating to our maintainers that a particular problem is affecting more than just the reporter.

### Pull Requests

PRs to the website are always welcome and can be a quick way to get your fix or improvement slated for the next release. In general, PRs should:

- Only fix/add the functionality in question **OR** address wide-spread whitespace/style issues, not both.
- Add unit or integration tests for fixed or changed functionality (if a test suite already exists).
- Address a single concern in the least number of changed lines as possible.
- Include documentation in the repo.
- Be accompanied by a complete Pull Request template (loaded automatically when a PR is created).

For changes that address core functionality or would require breaking changes (e.g. a major release), it's best to open an Issue to discuss your proposal first. This is not required but can save time creating and reviewing changes.

In general, we follow the ["fork-and-pull" Git workflow](https://github.com/susam/gitpr)

1. Fork the repository to your own Github account
2. Clone the project to your machine
3. Create a branch locally with a succinct but descriptive name
4. Commit changes to the branch
5. Following any formatting and testing guidelines specific to this repo
6. Push changes to your fork
7. Open a PR in our repository and follow the PR template so that we can efficiently review the changes.

## Getting Help

Feel free to reach out to @SoorajModi or @MarshallAsch if you have any questions.
59 changes: 59 additions & 0 deletions docs/HowToRun.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# How to Run
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thoughts on having this in the README instead? Personally I generally only want to have to look at the readme to find this information. I don't want to have to go searching through the project for docs like this.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Normally, I would agree, however I want to approach this from the perspective of a student who has no web development experience. I want to have extensive instructions on how to run the app locally on each OS. My hope is that future students are able to make changes without our help.

For that reason I made it into its own separate file so we can lots of detail later on. Dont wanna include it in the README, because it might look ugly lol.


This document will outline how to download and run this application for development.

## Prerequisites

- Web development
- Javascript
- React.js
- Node.js
- HTML
- CSS
- Docker [optional]

## Resources

- [React.js documentation](https://reactjs.org/)
- [Node.js download](https://nodejs.org/en/download/)
- [Docker](https://www.docker.com/)

## Cloning the repo

Clone the repository to your local computer:

```bash
git clone https://github.com/UoGSOCIS/socis_website.git
```

## Run the app

Download the required dependencies

```bash
yarn install
```

Run the application locally

```bash
yarn start
```

This will start the application on `http://localhost:3000/`. Use this mode for development.

## Build and run using Docker

Build

```bash
docker build -t socis-web .
```

Run the application

```bash
docker run -p 8080:80 socis-web:latest
```

This will start the application on `http://localhost:8080/`. Use this mode for testing and deployment. This mode does not have hot reloading.
SoorajModi marked this conversation as resolved.
Show resolved Hide resolved
67 changes: 67 additions & 0 deletions docs/HowToUpdate.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# How to Update

This document outlines how to update parts of the website. See [Contributing](https://github.com/UoGSOCIS/socis_website/blob/main/docs/Contributing.md) to see how to contribute to the repo.

## Exec/staff list

Open `src/pages/about/components/execList.js`. This file contains the full list of exec and staff including their names,
roles, and description. By editing this file you can update the contents of the site.

### Updating

Edit the content in `execList.js`.

To update profile pictures, replace the corresponding images in `src/pages/about/assets`. Make sure the file names match
the imported images in `execList.js`.

### Adding

Add a new individual in `execList.js`. Be sure to include the position, name, image and description fields.

To upload an image, add the image to `src/pages/about/assets`. Then import the image in `execList.js`:

```javascript
import Exec from '../assets/exec.jpeg';
```

### Removing

Open `execList.js`, find the individual and either comment them out or delete their section. Also delete their image in
`src/pages/about/assets`.

## Policy documents
SoorajModi marked this conversation as resolved.
Show resolved Hide resolved

The original policy documents can be found on the SOCIS google drive.

### Updating

Go to `src/pages/policy/assets` and replace the policy documents with the newer version. Next, open `src/pages/policy/components/header.jsx`
and update the `Last updated` string to today's date.

### Adding

To add new policy documents, first add the new policy document to `src/pages/policy/assets`. Then in `src/pages/policy/index.jsx`
import the policy document:

```javascript
import policyDocument from './assets/Policy.pdf';
```

Then add the component to the functional component:

```javascript
<FileViewer heading="Policy" file={policyDocument} />
```

### Removing

To remove policies, delete the corresponding document in `src/pages/policy/assets`. Then open `src/pages/policy/index.jsx`
and remove the lines for the component:

```javascript
import policyDocument from './assets/Policy.pdf';
```

```javascript
<FileViewer heading="Policy" file={policyDocument} />
```
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"name": "socis_website",
"version": "0.1.0",
"private": true,
"license": "GPL-3.0",
"dependencies": {
"@fortawesome/fontawesome-svg-core": "^1.2.35",
"@fortawesome/free-brands-svg-icons": "^5.15.3",
Expand Down
2 changes: 1 addition & 1 deletion src/pages/about/components/team.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ function Team({
}) {
return (
<TeamCard>
<TeamImage src={url} />
<TeamImage src={url} alt="Team member image" />
<TeamCardContentWrapper>
<TeamCardName>{name}</TeamCardName>
<TeamCardPosition>{position}</TeamCardPosition>
Expand Down