ULinks is a platform for students to browse & upload academic group chats to stay connected during online school. It is an open source project, built with accessibility and i18n in mind, allowing any schools to spin up their own instance with little to no modification. ULinks was originally started at TOHacks 2021, Devpost here.
.
├── client
│ ├── components
│ ├── constants
│ ├── content # Language jsons
│ ├── gql # GraphQL Queries
│ ├── helpers
│ ├── pages
│ ├── requests # Apollo query/mutate functions
│ ├── styles
│ ├── tests
│ └── theme
├── server
└── README.md # You are here! :)
ULinks follows Gitflow. We practice CI/CD where we continuously deploy off of main and use develop for feature work/integration.
──────────────────────── main ──────────────────────────────────── # Deployments
│ │
└───────────── develop ───────────── # Development work
│ │
└────── feat/[feat-name] ─── # Feature branches
Dev branches should be appended with an indicator to describe the type of work being done, including but not limited to: feat, hot-fix, refactor, tweak, docs, chore
For internal team:
- Clone the repo
- See featurework
For open source contributors:
- Fork the repo
git remote add upstream https://github.com/jcserv/ulinks/
git fetch upstream
git rebase upstream/develop
- See featurework
Frontend Acceptance Criteria:
- It should be properly linted/formatted (
yarn run format
) - Adequate automated test coverage (WIP)
- Basic manual QA & accessibility checks with Axe
- Constants should be placed in a constants file
- All text should be intl-ize'd
git checkout -b feat/[feat-name]
- Write your code
- Open a PR from that branch to develop (in the main repo)
- Fill out the pull request template accordingly
- To be approved, code must have adequate test coverage + formatted properly
- Commits should be squashed when merged
For client & server, you'll need a .env file in each.
client:
HOST=http://localhost:4000
server:
PORT=4000
MONGO_URI=[put your mongo URI here]
SECRET=[secret hash for encryption]
MAILGUN_API_KEY=[]
Locally running:
yarn
# install husky for pre-commit hookscd client && yarn
yarn dev
cd server && yarn
yarn dev
With Docker:
- Download Docker
- Copy/create the .env for server into the root directory
docker compose up --build
Go to http://localhost:3000 for the frontend, and http://localhost:4000/graphql for the graphql backend
Client: Import your Github project into Vercel. It will now have automated deployments on push.
Server: We originally used Google Cloud Run, however due to some changes with their API, the backend randomly went down without us receiving a alert. We could not resolve this issue, and thus had to migrate to Heroku.
- @AipioxTechson
- @jcserv
- @CometWhoosh
- @imphungky
- @jordanburr
- @ninaricci29
- @nandomancini
- @DigestedLime - 🇫🇷 translation support <3
Distributed under the MIT License. See LICENSE
for more information.