Contributing to the Sample App

Thanks for your interest in contributing to the sample app! This document will introduce you to the code and guide you through making a change.

Code Structure

To help you get acquainted more quickly, here is a list of files and directories commonly used:

  • CodeGen/ contains code used to streamline the process of reflecting database changes in the application. layer, thereby enhancing the adaptability and maintainability of applications.
  • GeneratedEntities contains all of the generated files running CodeGen produces.
  • MJAPI contains code related to the MemberJunction server API.
  • MJExplorer contains code for the frontend application
  • SQL Scripts contains the SQL scripts used to setup the databse .
  • Schema Files contains json files describing the schemas of our databse as well as the entities contained in each.

Code Style and Linting

We use Typescript across the entire repo with strong type checks. You can view the full typescript configuration settings here.

Making App (Frontend) Changes

Assuming you have the app running, Angular by default will recompile and show any change you make within the MJAPI folder, allowing for quick feedback loops and faster development.

Making Server (Backend) Changes

When working on the server code, located in MJAPI folder, you'll need to restart the server and run npm run start again after saving your changes.

Opening Pull Requests

Once you have a contribution ready, you can open a pull request to get it reviewed.

First, fork the sample app on Github, and push your branch to the fork. Then, when signed into Github, you'll be prompted to open a pull request when viewing the sample app repo.

If the contribution solves an open issue, you can automatically close that issue when the PR is merged. To do this, include the text "Closes #1234" in the PR description (to automatically close issue #1234).

Once the PR has been reviewed and accepted, it will be merged into the main branch. At this point, you are now a MemberJunction developer. Congratulations!