Skip to content

neu-cs4530/neu-cs4530-classroom-sp25-individual-project-1-spring25-ip1-template-1

Repository files navigation

The individual and team project for this class are designed to mirror the experiences of a software engineer joining a new development team: you will be “onboarded” to our codebase, make several individual contributions, and then form a team to propose, develop and implement new features. The codebase that we’ll be developing on is a Fake Stack Overflow project (let’s call it HuskyFlow). You will get an opportunity to work with the starter code which provides basic skeleton for the app and then additional features will be proposed and implemented by you! All implementation will take place in the TypeScript programming language, using React for the user interface.

{ : .note } Refer to IP1 for instructions related to setting up MongoDB, setting environment variables, and running the client and server.

Database Architecture

The schemas for the database are documented in the directory server/models/schema. A class diagram for the schema definition is shown below:

Class Diagram

API Routes

/answer

Endpoint Method Description
/addAnswer POST Add a new answer

/comment

Endpoint Method Description
/addComment POST Add a new comment

/messaging

Endpoint Method Description
/addMessage POST Add a new message
/getMessages GET Retrieve all messages

/question

Endpoint Method Description
/getQuestion GET Fetch questions by filter
/getQuestionById/ GET Fetch a specific question by ID
/addQuestion POST Add a new question
/upvoteQuestion POST Upvote a question
/downvoteQuestion POST Downvote a question

/tag

Endpoint Method Description
/getTagsWithQuestionNumber GET Fetch tags along with the number of questions
/getTagByName/ GET Fetch a specific tag by name

/user

Endpoint Method Description
/# POST Create a new user account
/# POST Log in as a user
/resetPassword PATCH Reset user password
/getUser/ GET Fetch user details by username
/deleteUser/ DELETE Delete a user by username

Running Stryker Mutation Testing

Mutation testing helps you measure the effectiveness of your tests by introducing small changes (mutations) to your code and checking if your tests catch them. To run mutation testing with Stryker, use the following command in server/:

npm run stryker

{ : .note } In case you face an "out of memory" error while running Stryker, use the following command to increase the memory allocation to 4GB for Node.js:

node --max-old-space-size=4096 ./node_modules/.bin/stryker run

About

neu-cs4530-classroom-sp25-individual-project-1-spring25-ip1-template-1 created by GitHub Classroom

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published