/*@ngInject*/
function ProjectModelService(projectsAPI) {
    class Project {
        constructor(id, name, owner) {
            this.id = id;
            this.name = name;
            this.owner = owner;
            this.samples_count = 0;
            this.processes_count = 0;
            this.experiments_count = 0;
            this.files_count = 0;
            this.description = "";
            this.birthtime = 0;
            this.owner_details = {};
            this.selected = false;
            this.selected2 = false;
            this.msg1 = "This is a status message";
            this.mtime = 0;
        }

        static fromJSON(data) {
            let p = new Project(data.id, data.name, data.owner);
            p.samples = data.samples;
            p.processes = data.processes;
            p.experiments = data.experiments;
            p.files_count = data.files;
            p.description = data.description;
            p.birthtime = new Date(data.birthtime * 1000);
            p.mtime = new Date(data.mtime * 1000);
            p.users = data.users;
            p.owner_details = data.owner_details;
            p.status_notes = data.status_notes;
            p.status = data.status;
            return p;
        }

        static get(id) {

        }

        static getProjectsForCurrentUser() {
            return projectsAPI.getAllProjects().then(
                (projects) => projects.map(p => Project.fromJSON(p))
            );
        }

        save() {

        }

        update() {

        }
    }

    return Project;
}

angular.module('materialscommons').factory('ProjectModel', ProjectModelService);

@@ -202,122 +202,8 @@
 er;%0A
-            this.samples_count = 0;%0A            this.processes_count = 0;%0A            this.experiments_count = 0;%0A
     
@@ -267,16 +267,48 @@
 n = %22%22;%0A
+            this.overview = %22%22;%0A
         
@@ -424,105 +424,582 @@
 his.
-selected2 = false;%0A            this.msg1 = %22This is a status message%22;%0A            this.mtime = 0
+mtime = 0;%0A            this.processes = %5B%5D;%0A            this.samples = %5B%5D;%0A            this.experiments = %5B%5D;%0A            this.status_notes = %5B%0A                %7B%0A                    note: '',%0A                    status: 'none'%0A                %7D,%0A                %7B%0A                    note: '',%0A                    status: 'none'%0A                %7D,%0A                %7B%0A                    note: '',%0A                    status: 'none'%0A                %7D%0A            %5D;%0A            this.users = %5B%5D;%0A            this.owner_details = %7Bfullname: ''%7D;%0A            this.status = 'none'
 ;%0A  
@@ -1316,16 +1316,56 @@
 iption;%0A
+            p.overview = data.overview;%0A
         
@@ -1688,24 +1688,145 @@
 c get(id) %7B%0A
+            return projectsAPI.getProject(id).then(%0A                (project) =%3E Project.fromJSON(project)%0A            );
 %0A        %7D%0A%0A
@@ -2063,20 +2063,86 @@
  update(
-) %7B%0A
+attrs) %7B%0A            return projectsAPI.updateProject(this.id, attrs);
 %0A       

Implement get in project model to get an individual project. Update constructor with default field values.