# Project Overview

What follows is an overfiew of the files/folders in your newly generated project.

## Project Root

```
.babelrc // configuration for [Babel], a JavaScript transpiler
.editorconfig // config file used to keep conistent file editing across text editors
.eslintrc // all of the rules applying to the ESLint JavaScript linter
.travis.yml // a sample configuration file for Travis CI
.yo-rc.json // a configuration file for the Angular Full-Stack Generator
gulpfile.babel.js // Gulp task runner file
karma.conf.js // Karma browser testing configuration
mocha.conf.js // Mocha test framework configuration
mocha.global.js // teardown file for Mocha
package.json // npm manifest, contains information for all project dependencies
protractor.conf.js // configuration for Protractor e2e test framework
README.md // a readme file generator based on your options, for your scaffolded project
spec.js // test file for Webpack used by Karma
webpack.make.js // main file for Webpack configuration
    //The following export the config from `webpack.make.js` for their respective build targets:
    webpack.dev.js
    webpack.test.js
    webpack.build.js
```

## `client/`

```
│   .eslintrc // eslint config for client files
│   polyfills.js // imports of polyfills
│   app.template.html // template for the root HTML file of your app
│
├───app
│   │   app.config.js // contains app-wide configuration code
│   │   app.constants.js // gets injected with constants from `server/config/environment/shared.js`
│   │   app.{js,ts} // root JavaScript file of your app
│   │   app.{css,scss,stylus,less} // root CSS file of your app
│   │
│   ├───account // pages related to login / signup / user settings
│   │   │   account.routes.js // route information
│   │   │   index.js // account module root
│   │   │
│   │   ├───login
│   │   ├───settings
│   │   └───signup
│   │
│   ├───admin // site admin page
│   │
│   └───main // main component, homepage
│
├───assets // where static assets are stored
│
└───components
    ├───auth
    │       auth.module.js // module containing auth components
    │       auth.service.js // authentication service
    │       interceptor.service.js // intercepts requests and adds tokens if needed. Also redirects 401s to the login page.
    │       router.decorator.js // facilitates auth-based routing configuration
    │       user.service.js // user resource service
    │
    ├───footer
    │
    ├───modal
    │
    ├───navbar
    │
    ├───oauth-buttons // buttons for oauth login on signup / login pages
    │
    ├───socket
    │       socket.mock.js // mock service for unit testing
    │       socket.service.js // service for Socket IO integration
    │
    ├───ui-router
    │       ui-router.mock.js // mock service for unit testing
    │
    └───util // general utility service
```

## `server/`

```
│   .eslintrc // server-specific ESLint config, imports rules from root file
│   app.js // root server module
│   index.js // imports `app.js`. Enables Babel require hook when in development mode.
│   routes.js // imports / config for server endpoints
│
├───api
│   ├───thing
│   │       index.js // root module
│   │       index.spec.js // root module tests
│   │       thing.controller.js // endpoint logic
│   │       thing.events.js // endpoint events (save, delete, etc) logic
│   │       thing.integration.js // integration tests
│   │       thing.model.js // Mongoose / Sequelize data model
│   │       thing.socket.js // Socket IO logic / config
│   │
│   └───user // API for Users
│
├───auth
│   │   auth.service.js
│   │   index.js // imports local/oauth auth modules
│   │
│   ├───local // regular auth, signed up directly via your site
│   ├───google // Google OAuth
│   └───<etc...>
│
└───config
    │   express.js // Express server setup
    │   local.env.js // ignored by Git
    │   local.env.sample.js // sensitive environment variables are stored here, and added at server start. Copy to `local.env.js`.
    │   seed.js // re-seeds database with fresh data
    │   socketio.js // Socket IO configuration / imports
    │
    └───environment
            development.js
            index.js
            production.js
            shared.js // config constants shared with the client code
            test.js
```

## `e2e/`

End-To-End testing files (use by [Protractor](https://github.com/angular/protractor) with [Mocha](https://github.com/mochajs/mocha))


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://awk34.gitbook.io/generator-angular-fullstack/getting-started/project-overview.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
