Contributing
We would ❤️ for you to contribute to Pingvin Share and help make it better! All contributions are welcome, including issues, suggestions, pull requests and more.
Getting started
You've found a bug, have suggestion or something else, just create an issue on GitHub and we can get in touch 😊.
Submit a Pull Request
Before you submit the pull request for review please ensure that
-
The pull request naming follows the Conventional Commits specification:
<type>[optional scope]: <description>
example:
feat(share): add password protection
When
TYPE
can be:- feat - is a new feature
- doc - documentation only changes
- fix - a bug fix
- refactor - code change that neither fixes a bug nor adds a feature
-
Your pull request has a detailed description
-
You run
npm run format
to format the code
Don't know how to create a pull request? Learn how to create a pull request
-
Create a fork of the repository by clicking on the
Fork
button in the Pingvin Share repository -
Clone your fork to your machine with
git clone
$ git clone https://github.com/[your_username]/pingvin-share
-
Work - commit - repeat
-
Push changes to GitHub
$ git push origin [name_of_your_new_branch]
- Submit your changes for review
If you go to your repository on GitHub, you'll see a
Compare & pull request
button. Click on that button. - Start a Pull Request
- Now submit the pull request and click on
Create pull request
. - Get a code review approval/reject
Setup project
Pingvin Share consists of a frontend and a backend.
Backend
The backend is built with Nest.js and uses Typescript.
Setup
- Open the
backend
folder - Install the dependencies with
npm install
- Push the database schema to the database by running
npx prisma db push
- Seed the database with
npx prisma db seed
- Start the backend with
npm run dev
Frontend
The frontend is built with Next.js and uses Typescript.
Setup
- Start the backend first
- Open the
frontend
folder - Install the dependencies with
npm install
- Start the frontend with
npm run dev
You're all set!
Testing
At the moment we only have system tests for the backend. To run these tests, run npm run test:system
in the backend folder.