This page provides an overview of the file structure for all files within the server sub-project.
This includes why files exist, what they are used for, if they are safe to edit, and any other
information about specific files.  This is not to be confused with architecture that is generally
a bit more abstract.

- **Author**: Alex Wilkes <[adw4236@rit.edu](mailto:adw4236@rit.edu)>

# Server Project Files and Folders

- **/coverage**: Output directory for code coverage reports
- **/node_modules**: Dependencies installed by Node.JS. You should not edit anything in this folder.
- **/docs**: Output directory for auto generated API docs.
- **/src**: Contains all source code for the server
  - **/bin**: Contains executables related to the server project
    - **www**: Primary executable for the application
    - **populate.js**: Can be used to instantiate some dummy data in the database
  - **Others**: The rest is the source code and maps directly to what is described
    by [Server Architecture](https://github.com/FiTRSkills/ForkInTheCode/wiki/Server-Side-Architecture)
- **/test**: Code for unit testing and integration / API testing.
- **.env**: Can be used to specify environment variables
- **globalConfig.json**: Generated by Jest as configurations for testing, should not be edited
  or checked in to the repo.
- **jest.config.js**: Configurations for the test suite
- **jest-mongodb-config.js**: Configurations for the in memory MongoDB used for testing.
- **jsconf.json**: Configurations for automatically generated API documentation.
- **package.json**:Node.JS configurations.
- **/package-lock.json**: Ensures everyone working on the project has the same dependency versions.
  You should not need to edit this because it is automatically generated by `npm`.