Backend server for the psychophysics-connect
app, built with Node.js,
Express.js, and MongoDB/Mongoose. This project provides JWT authentication for
secure endpoints and handles audio streaming.
- Secure authentication using JWT.
- Audio streaming capabilities.
- Organized project structure with controllers, models, middleware, and more.
- Express.js for handling routes and requests.
- MongoDB/Mongoose for database management.
-
Clone the repository.
git clone https://github.com/ioannischtz/psychophysics-connect-backend.git
-
Install dependencies.
npm install
- Configure your environment variables. Create a .env file in the root directory and provide necessary configurations.
NODE_ENV=development
PORT=3000
# Add other environment variables
- Start the server
npm run start
- Access the application in your browser or API client.
The inspiration behind this project stems from my previous original work named
remote-timbre-experiment
, which served as a foundation for this enhanced
version. Originally developed as part of my PhD research, the
remote-timbre-experiment
aimed to conduct psycho-physical experiments on sound
perception in a remote setting due to prevailing pandemic circumstances.
In the earlier iteration, the focus was on implementing a specific experiment, allowing participants to manipulate image representations of sound characteristics rather than relying on conventional word-pairs. While functional for its intended purpose, the project was constrained by tight timelines and lacked professional patterns and abstractions.
The motivation for this current project, hence, is to re-imagine and extend the
capabilities of the remote-timbre-experiment
platform. By leveraging proper
software engineering practices, architectural patterns, and robust abstractions,
this project seeks to provide an adaptable platform for a variety of
psycho-physical experiments. The goal is to facilitate researchers in the field
with a versatile and user-friendly dashboard that can be tailored to different
experiments and sound perception studies.
Through enhancing the initial project and embracing professional techniques, this project aims to empower researchers to conduct experiments more effectively and efficiently, contributing to the advancement of psycho-physical research in sound perception and related domains.
The API endpoints and their usage are documented in the API Documentation file.
To run tests, use the following commands:
- Run tests with coverage:
npm run test:coverage
- Run tests in watch mode:
npm run test:watch
- Run tests in ui mode:
npm run test:ui
Contributions are welcome! To contribute to this project:
- Fork the repository.
- Create a new branch.
- Make your changes.
- Test your changes thoroughly.
- Create a pull request.
This project is licensed under the GNU General Public License v3.0. You are free to use, modify, and distribute the code as per the terms of this license.
- Ioannis-chtz: ioannischtz@gmail.com
- Project Link: https://github.com/ioannischtz/psychophysics-connect-backend