_____ ____ _ _ ____ _
|_ _|__ __ _ _ __ ___ / ___|(_) |_ _____ _ __ / ___| ___ _ __ _ __ ___ _ __ | |_
| |/ _ \/ _` | '_ ` _ \ \___ \| | \ \ / / _ \ '__| \___ \ / _ \ '__| '_ \ / _ \ '_ \| __|
| | __/ (_| | | | | | | ___) | | |\ V / __/ | ___) | __/ | | |_) | __/ | | | |_
|_|\___|\__,_|_| |_| |_| |____/|_|_| \_/ \___|_| |____/ \___|_| | .__/ \___|_| |_|\__|
|_|
Project Portal aims to help BU Computer Science students and instructors to keep track of software development projects. This repository contains Team Silver Serpent's class project for BU Met College CS672 (Spring 2018).
A live demo of the server can be found on Project Portal Demo on Digital Ocean. The code can be found on GitHub at Project Portal.
project
│ README.md
│ app.js
| package.json
└──controllers
│ │ users-controllers.js
│ │ sessions-controllers.js
│ │ projects-controllers.js
└──models
│ │ users-model.js
│ │ sessions-model.js
│ │ projects-model
└──config
│ | default.json
| | prod.json
│ | test.json
└──project-angular-src (the frontend folder)
project-angular-src
│ README.md
│ package.json
| tsconfig.json
└──src
| └──app
| │ └──add-project
| | | | add-project-component.css
| | | | add-project-component.html
| | | | add-project-component.spec.ts
| | | | add-project-component.ts
| │ └──display-project
| │ └──home
| │ └──login-page
| │ └──models
| | | | Comments.ts
| | | | Project.ts
| | | | Session.ts
| | | | User.ts
| │ └──(several other components)
| │ └──services
| | | | project.service.ts
| | | | users-session.service.ts
- Angular 2 (to create a sleek, responsive front-end)
- Express (for routing and controllers)
- Mongoose (an Object-Relational Mapper) MongoDB
- Node.js
- Mocha + Chai
- AngularJS Material
-
For example, Han Solo, a Windows 10 user, might create a folder at
C:\Users\hsolo\Documents\project_portal
, whereas Chewbacca, a Mac enthusiast, decides to create his at/Users/chewie/Desktop/project_portal
. - Requires Node 8.9.4. (NPM is bundled with Node.) See Node.js.
-
Requires MongoDB ^3.6.0. (^ means "at least version 3.6.0.")
See MongoDB. Use all defaults, including port 27017.
After starting the mongo server, load the test data by typing:
mongoimport --db project-portal-test --collection projects --file projects-sample-data.json mongoimport --db project-portal-test --collection users --file users-sample-data.json
- See Atlassian Git Tutorial.
-
Han fires up his Command Prompt and types
chdir C:\Users\hsolo\Documents\projects_portal
. Chewie enterscd ~\Desktop\project_portal
. -
Both Han and Chewie, from the command line, type
Clone the Project Portal repository in your project folder
git clone https://github.com/cs673-team-silver-serpent/project.git
. -
After the repository cloning finishes, our fearless heroes type
npm install
from inside of their project folders. This will download all of dependent modules that the backend currently uses. They'll then change directory intoproject-angular-src
, and do anothernpm install
to install the frontend dependencies. - Until this step is automated, you must start MongoDB manually or at startup on your machine. See MongoDB for platform-specific instructions.
-
Inside of the project folder, Chewie types
npm start
. If successeful, he will see two console message:Starting the server at port 3000.
andStarting the server at port 3001.
Chewie should accepts the self-signed certificate error, at which time he should see the "Welcome to Projects Portal!" message fromhttps:\\127.0.0.1:3000
. - From here on out, Chewie will be interacting with the frontend, which is at
https:\\127.0.0.1:3001.