First off, thanks for taking the time to contribute!
The following is a set of guidelines for contributing to SoulSpace. These are just guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.
This project and everyone participating in it is governed by the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code.
You need to have the following installed on your machine:
- Node.js (v18+)
- PostgreSQL
-
Fork the repository on GitHub.
-
Clone your fork locally:
git clone https://github.com/your-username/soulspace.git cd soulspace -
Setup the Database: Ensure your PostgreSQL server is running and you have a database created.
-
Install Dependencies:
- Backend:
cd backend npm install - Frontend:
cd frontend npm install
- Backend:
This project is a monorepo containing both the frontend and backend. You usually need to run both simultaneously for full functionality.
- Navigate to the
backenddirectory. - Create a
.envfile based on the example in the README or ask a maintainer for the variables. - Run migrations:
npx prisma migrate dev
- Start the development server:
The server will start on
npm run dev
http://localhost:3001(default).
- Navigate to the
frontenddirectory. - Start the development server:
The application will run on
npm run dev
http://localhost:3000.
- Ensure any install or build dependencies are removed before the end of the layer when doing a build.
- Update the
README.mdwith details of changes to the interface, this includes new environment variables, exposed ports, useful file locations and container parameters. - Increase the version numbers in any examples files and the README.md to the new version that this Pull Request would represent. The versioning scheme we use is SemVer.
- You may merge the Pull Request in once you have the sign-off of two other developers, or if you do not have permission to do that, you may request the second reviewer to merge it for you.
- JavaScript/React: We follow the standard Next.js and React patterns. Use functional components and Hooks.
- Styling: Use Tailwind CSS utility classes. Avoid inline styles where possible.
- Backend: Use standard Express middleware patterns and async/await for asynchronous operations.
Before submitting a PR, please run the linter to ensure code quality.
- Frontend:
cd frontend npm run lint
Thank you for contributing!