/rc-prjkt

RC Projects is an application used to showcase the projects you're working on at the Recurse Center!

Primary LanguageTypeScriptMIT LicenseMIT

RC Projects

RC Projects is an application used to showcase the projects you're working on at the Recurse Center!

Projects have tags which allow Recursers to filter projects by their interests and find opportunities to pair, receive a code review, and more!

Live LinkThis application requires a Recurse Center account in order to authorize.

If you are not a member of the Recurse Center or do not with to authorize access to your RC data, you can view a live demo version!

Project Details

RC Projects is a collaboration by Artur and Amanda to learn more about building MERN stack applcations.

The back-end is built with Node, Express, and MongoDB.

The front-end is built with React, TypeScript, Material-UI, and React Query.

Authentication is handled with OAuth2 and the Recurse Center API. You must authenticate through the RC API in order to receive access to this application. User information and identification gathered from RC's API.

Installation

In order to run this application locally, you MUST be a member of the Recurse Center as this application uses the Recurse Center API.

  1. Clone the repository to your local machine.
git clone git@github.com:ArtSze/rc-prjkt.git
cd rc-prjkt
  1. Create a .env file and populate all of the required variables.
cp conf.env .env
  • In order to run this application locally, you will need these variables:

    • Recurse Center OAuth ID and Secret. Follow the RC documentation to generate these variables.
    DEVELOPMENT_RC_AUTH_ID
    DEVELOPMENT_RC_AUTH_SECRET
    • A randomly generated secret for express sessions.
    SESSION_SECRET
    • A MongoDB Atlas account and URI. Documentation to generate a URI can be found here.
    TEST_MONGO_URI=
    DEVELOPMENT_MONGO_URI=
    • Development environment URLs (i.e. http://localhost:4000)
    TEST_CLIENT_URL=
    DEVELOPMENT_CLIENT_URL=
    DEVELOPMENT_SERVER_URL=
  1. Run yarn to install the dependencies.

  2. Start the client and development servers.

  • The back-end supports serving the client assets. To run on the same port:

    yarn build:client
    yarn dev
  • Otherwise, start both the client and development server:

    • Update the baseUrl in /client/src/utils/axiosInstance.ts to match your DEVELOPMENT_SERVER_URL and add /api Example:
    export const baseURL = 'http://localhost:4000/api';
    • Start the client server:
    cd client && yarn start
    • Start the development server:
    yarn dev