MCPcopy Index your code
hub / github.com/RealDevSquad/website-backend

github.com/RealDevSquad/website-backend @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
828 symbols 2,286 edges 520 files 32 documented · 4%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

GitHub Workflow Status GitHub issues JavaScript Style Guide

Real Dev Squad API

Table of Contents

About the Project

This Project serves the backend APIs required for Real Dev Squad web projects. This project is built in Express.js.

Prerequisites

  • The application uses node-config(documentation) for managing config.
  • Create a new file: config/local.js. Override the required config values from config/development.js and config/default.js into config/local.js.
  • Register the application for GitHub OAuth to get the clientId and clientSecret. Add the callback URL as http://<HOSTNAME>:<PORT>/auth/github/callback
  • Create an application on FireStore and generate a service file. Add the service file credentials in the local config (or your env variables) as a string. Make sure you convert all the escape sequence (newline) - \n with \\n in private_key field.
  • For running the project locally, Firebase Local Emulator Suite can also be used instead of using the remote DB. Steps for setting it up: CONTRIBUTING.md - Using Firebase Emulator Locally

Starting Local Development

Please install yarn and volta

Why Volta?

To install Volta, please follow the process

Local Development Setup

Install all the packages using the following command:

yarn

Now if one runs yarn install. The yarn.lock will be unexpectedly updated with an unknown future version of a dependency, potentially breaking the build in the future. To ensure that the yarn.lock file is not update, you will need to use the --frozen-lockfile flag.

yarn install --frozen-lockfile

Confirm correct configuration setup

This command should be successful, before moving to development.

yarn validate-setup

TDD Local Development

Head over to TDD Tests Files List, and add the list of your new (or old) test files.

You can use wildcard '*' in the filepaths

Run TDD in watch mode. Exiting this command will print the coverage report. Try to achieve 100% coverage.

yarn tdd:watch

Running a server in Dev mode

yarn dev

What happens in production:

  • Install packages
yarn
  • Run tests
yarn run test
  • Prune dev dependencies
npm prune --production
  • Run start command (with port information)
yarn start

Note: These are handled automatically behind the scene when pushing to Heroku

Check out our video on how to setup the backend here: Wiki link

Read more about contributing to the project: CONTRIBUTING

Extension points exported contracts — how you extend this code

CreateApplicationServiceParams (Interface)
(no doc)
services/applicationService.ts
LogMeta (Interface)
(no doc)
services/logService.ts
KeyValues (Interface)
(no doc)
models/requests.ts
Queries (Interface)
(no doc)
typeDefinitions/rqlParser.ts
CreateApplicationServiceResponse (Interface)
(no doc)
services/applicationService.ts
LogBody (Interface)
(no doc)
services/logService.ts
FilterQueryValue (Interface)
(no doc)
typeDefinitions/rqlParser.ts
GroupedFilterQueries (Interface)
(no doc)
typeDefinitions/rqlParser.ts

Core symbols most depended-on inside this repo

get
called by 1087
services/EventAPIService.js
post
called by 306
services/EventAPIService.js
authorizeRoles
called by 66
middlewares/authorizeRoles.js
generateStatusDataForState
called by 51
test/fixtures/userStatus/userStatus.js
createRequest
called by 37
models/requests.ts
addLog
called by 34
models/logs.js
convertDaysToMilliseconds
called by 31
utils/time.js
generateUserStatusData
called by 22
test/fixtures/userStatus/userStatus.js

Shape

Function 795
Method 16
Interface 9
Class 6
Enum 2

Languages

TypeScript100%

Modules by API surface

controllers/users.js36 symbols
models/users.js33 symbols
models/discordactions.js27 symbols
utils/userStatus.js21 symbols
models/tasks.js21 symbols
utils/users.js15 symbols
models/userStatus.js15 symbols
controllers/discordactions.js15 symbols
controllers/tasks.js14 symbols
utils/progresses.js13 symbols
utils/cache.js13 symbols
services/githubService.js13 symbols

For agents

$ claude mcp add website-backend \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact