diff --git a/Backend/CSAMS/Controllers/TopController.cs b/Backend/CSAMS/Controllers/TopController.cs
index c0a59786a84de2a8c78af96d6526312c550db9dd..f252bdbdc0b9c30265ff0f4e9d4184a0b9201060 100644
--- a/Backend/CSAMS/Controllers/TopController.cs
+++ b/Backend/CSAMS/Controllers/TopController.cs
@@ -31,111 +31,8 @@ namespace CSAMS.Controllers
 
 
 
-        /*
-
-        [HttpGet("Top/{N}/{Type}/{IsProject}")]
-        public async Task<ActionResult<TopModel[]>> GetTopReviews(int N, string Type, Boolean IsProject)
-        {
-
-           // var test = await _context.Assignments.ToArrayAsync();
-            var fields = await _context.Fields.ToArrayAsync();
-           // TopModel[][] child = new TopModel[test.ToList().Count][];
-
-            Console.WriteLine($"N is {N} and Type is {Type}");
-
-            var t = _context.UserReviews.Include(r => r.Review).Include(r => r.Assignment)
-                  .AsEnumerable()
-                  // .GroupBy(r => r.AssignmentID)
-                  // .Select(r => TopProjects(r.ToArray(), fields, IsProject))
-                  .Where(p => p != null)
-
-                  .ToArray();
-            if (IsProject == true)
-            {
-                if (Type == "Top")
-                {
-                    return t
-                           .GroupBy(r => r.AssignmentID)
-                          .Select(r => TopProjects(r.ToArray(), fields, IsProject,0))
-                       .Where(r => r != null)
-                       
-                         .OrderByDescending(p => p.Grade)
-                         .Take(N)
-                         .ToArray();
-                    ;
-                }
-                else if (Type == "Bottom")
-                {
-                    Console.WriteLine(t.Length);
-                    var x = t
-                        .GroupBy(r => r.AssignmentID)
-                       .Select(r => TopProjects(r.ToArray(), fields, IsProject, 0))
-                       .Where(r => r != null)
-                       .OrderBy(p => p.Grade)
-                       .Take(N)
-
-                       .ToArray();
-                    return x;
-                }
-                else
-                {
-                    return t
-                          .GroupBy(r => r.AssignmentID)
-                          .Select(r => TopProjects(r.ToArray(), fields, IsProject, 0))
-                       .Where(r => r != null)
-                         .Take(2)
-                         .ToArray();
-                    ;
-                }
-            }
-            else////////////////////////////
-            {
-                var average = GetMiddle(_context.UserReviews.Include(r => r.Review).ToArray(), fields);
-
-                if (Type == "Top")
-                {
-                    return t
-                        
-                           .GroupBy(r => r.UserReviewer)
-                          .Select(r => TopProjects(r.ToArray(), fields, IsProject, average))
-                            
-                       .Where(r => r != null)
-                     
-                         .OrderBy(p=>p.Grade)
-                       
-                         .Take(N)
-                         
-                         .ToArray();
-                    ;
-                }
-                else if (Type == "Bottom")
-                {
-                    return t
-                        .GroupBy(r => r.UserReviewer)
-                       .Select(r => TopProjects(r.ToArray(), fields, IsProject, average))
-                       .Where(r => r != null)
-                       .OrderByDescending(p => p.Grade)
-                       .Take(N)
-                       .ToArray();
-
-                }
-                else
-                {
-                    return t
-                          .GroupBy(r => r.ReviewID)
-                          .Select(r => TopProjects(r.ToArray(), fields, IsProject, average))
-                       .Where(r => r != null)
-                         .Take(2)
-                         .ToArray();
-                    ;
-                }
-            }
-
-
-        }
-
-        */
-        [HttpGet("Top/{N}/{Type}/{IsProject}")]
+     
+       // [HttpGet("Top/{N}/{Type}/{IsProject}")]
         public static TopModel TopProjects(UserReviews[] userReviews, Fields[] fields, Boolean IsProject,float average)
         {
 
@@ -247,7 +144,13 @@ namespace CSAMS.Controllers
 
                   .ToArray();
             var toAverege = _context.UserReviews.Include(r => r.Review).ToArray();
-           return OuterTopProjects(N, Type, IsProject, userdata, fields, toAverege);
+            
+            var ret = OuterTopProjects(N, Type, IsProject, userdata, fields, toAverege);
+
+            if (ret.Length == 0)
+                return BadRequest("0 length");
+
+            return ret;
         }
 
 
diff --git a/React/test-http/package.json b/React/test-http/package.json
index cb2dfa65b8ef8be437eddf0b4abfc5d8e9fe903b..1566c63f9fe776de8bff21ebc82960ba78b79aa1 100644
--- a/React/test-http/package.json
+++ b/React/test-http/package.json
@@ -9,6 +9,7 @@
     "axios": "^0.21.4",
     "components": "^0.1.0",
     "react": "^17.0.2",
+    "react-bootstrap": "^2.0.2",
     "react-boxplot": "^3.1.0",
     "react-dom": "^17.0.2",
     "react-dropdown": "^1.9.2",
diff --git a/React/test-http/src/App.css b/React/test-http/src/App.css
index 1f94ff5ea044b60283c908624aeff0e19c0a53f5..998170fe69794537e5317cc9028ee683efa4d629 100644
--- a/React/test-http/src/App.css
+++ b/React/test-http/src/App.css
@@ -93,6 +93,16 @@
   color: white;
   background-color: rgb(110,94,254);
 }
+
+.blackButton{
+  background-color: rgb(69, 39, 116);
+  color: black;
+}
+
+.whiteButton{
+  background-color: white;
+  color: black;
+}
 /* 
 .paginationDisabled a {
   color: grey;
diff --git a/React/test-http/src/App.js b/React/test-http/src/App.js
index 02fe5fa01dfbb62f50c5d9d0c67817e0d5dfedfd..24252d65fdf9dd524e43393c6ec997aad4d2c9a3 100644
--- a/React/test-http/src/App.js
+++ b/React/test-http/src/App.js
@@ -58,6 +58,11 @@ function App() {
             <Route path='/Statistics' >
                 <Statistics />
             </Route>
+            <Route path='/Top' >
+                <Top />
+            </Route>
+
+
 
         </Router>
     );
diff --git a/React/test-http/src/components/Navbar/MenuItems.js b/React/test-http/src/components/Navbar/MenuItems.js
index b898ce87800d3f68692a1d9019532fb37f0652b4..7e182cfc201db64a4410623918fb60c57e213b54 100644
--- a/React/test-http/src/components/Navbar/MenuItems.js
+++ b/React/test-http/src/components/Navbar/MenuItems.js
@@ -36,8 +36,8 @@ export const MenuItems = [
 
     },
     {
-        title: 'Sign up',
-        url: '#',
-        cName: 'nav-links-mobile'
+        title:'Top',
+        url: 'http://localhost:3000/Top/top',
+        cName:'nav-links'
     },
 ]
\ No newline at end of file
diff --git a/React/test-http/src/components/ReviewerComments.js b/React/test-http/src/components/ReviewerComments.js
index 5baee7b26fe7e5b98cbe62ca8a3efe9f2d5f216a..e432b9410c8b121d100ec95e4c095a3c51aca3b4 100644
--- a/React/test-http/src/components/ReviewerComments.js
+++ b/React/test-http/src/components/ReviewerComments.js
@@ -30,7 +30,7 @@ class ReviewerComments extends Component {
 
     render() {
         const { posts, errorMsg } = this.state
-        if (errorMsg == '') {
+        if (errorMsg ==='') {
             console.log(errorMsg)
             let n = 0
             return (
diff --git a/React/test-http/src/components/Top.js b/React/test-http/src/components/Top.js
new file mode 100644
index 0000000000000000000000000000000000000000..9650ce97fa7f1d8ca7f8e46381557ea01ef7ee3c
--- /dev/null
+++ b/React/test-http/src/components/Top.js
@@ -0,0 +1,221 @@
+import React, { Component } from 'react'
+import axios from 'axios'
+import TopInsides from './TopInsides'
+
+class Top extends Component {
+    constructor(props) {
+        super(props)
+
+        this.state = {
+            posts: [],
+            errorMsg: '',
+            N: '',
+            Type: 'Top',
+            IsProject: true,
+            site: 'https://localhost:44344/api/Top/top',
+            Submited: false,
+            TopsClicked: false,
+            ProjectsClicked: false,
+            Backup: false
+
+
+        }
+    }
+
+    changeHandler = (e) => {
+        this.setState({ [e.target.name]: e.target.value })
+
+    }
+
+    Capitalize(str) {
+        if (str.width > 1)
+            return str.charAt(0).toUpperCase() + str.toLowerCase().toslice(1);
+        return str
+    }
+
+    doSomething() {
+
+        //  console.log(this.state)
+
+        if (this.state.Submited === true) {
+            axios
+                .get(this.state.site + '/' + this.state.N + '/' + this.state.Type + '/' + this.state.IsProject)
+                .then(response => {
+                    console.log(response)
+                    this.setState({ posts: response.data })
+
+                  //  this.setState({site:'https://localhost:44344/api/Top/top'})
+                if(this.state.posts.length>1) {
+                  this.setState({ errorMsg: '' })
+                  this.setState({ errorMsg2: '' })
+                }
+                  
+                 // TopInsides(this.state.posts,this.state.Backup)
+
+                })
+                .catch(error => {
+                    console.log(error)
+                    this.setState({posts: []})
+                    this.setState({ errorMsg: 'Error retrieving data' })
+                })
+
+        }
+    }
+
+    submitHandler = (e) => {
+        e.preventDefault()
+        console.log('test')
+        this.setState({ [e.target.name]: e.target.value })
+        this.setState({ IsProject: this.state.IsProject })
+
+        if (this.state.N < 1 || this.state.N > 300) {
+            this.setState({ errorMsg2: ' Error in imput field 1. Provide possitive number (within reason)' })
+        }
+        this.setState({ Backup: this.state.IsProject })
+        this.setState({ Submited: true }, () => { this.doSomething() })
+        // this.setState({site:this.state.site+'/'+this.state.N+'/'+this.state.Type+'/'+this.state.IsProject},()=>{ this.doSomething()})
+
+
+        // this.doSomething()
+
+
+    }
+    //clickHandler() { }
+
+    onChangeValue(event) {
+        this.setState({ Type: EventTarget.value })
+        //console.log(this.state)
+    }
+    changeColorIs() {
+        this.setState({ ProjectsClicked: !this.state.ProjectsClicked })
+    }
+
+    changeColorType() {
+        this.setState({ TopsClicked: !this.state.TopsClicked })
+        // console.log(this.state+"COLOR CHANGE!!")
+    }
+
+    render() {
+        let btn_classtype = this.state.TopsClicked ? "blackButton" : "whiteButton";
+        let btn_classIs = this.state.ProjectsClicked ? "blackButton" : "whiteButton";
+        let btn_classIs2 = this.state.ProjectsClicked ? "whiteButton" : "blackButton";
+        let btn_classtype2 = this.state.TopsClicked ? "whiteButton" : "blackButton";
+        const { posts, errorMsg, errorMsg2, N, } = this.state
+
+        let message
+        if (this.state.Submited === false) {
+            message = <div>Please enter N,Top or Bottom and Projects or Reviewers</div>
+        } else {
+            console.log(this.state)
+            message =
+                <div style={{ textAlign: 'center' }}>
+
+                    {/* <tr style={{ display: 'flex', justifyContent: 'center' }}>
+              <td style={{ border: "1px solid rgb(0, 0, 0)", width: 300 }}>Grade</td>
+             <td style={{ border: "1px solid rgb(0, 0, 0)", width: 300 }}>Assignment name</td>
+             <td style={{ border: "1px solid rgb(0, 0, 0)", width: 200 }}>Assignment ID</td>
+             <td style={{ border: "1px solid rgb(0, 0, 0)", width: 200 }}>Reviewer ID</td>
+         </tr> */}
+
+                    {TopInsides(posts, this.state.Backup)}
+                    {/* {posts.map(row => (
+         <tr key={row.id} style={{ display: 'flex', justifyContent: 'center' }}>
+               <td style={{ border: "1px solid rgb(0, 0, 0)", backgroundColor: (n % 2) === 1 ? '#aae' : '#dde', width: 300 }}>{row.grade}</td>          
+              <td style={{ border: "1px solid rgb(0, 0, 0)", backgroundColor: (n % 2) === 1 ? '#aae' : '#dde', width: 300 }}>{row.assingmentName}</td>
+              <td style={{ border: "1px solid rgb(0, 0, 0)", backgroundColor: (n % 2) === 1 ? '#aae' : '#dde', width: 200 }}>{row.assingmentID}</td>
+              <td style={{ border: "1px solid rgb(0, 0, 0)", backgroundColor: (n++ % 2) === 1 ? '#aae' : '#dde', width: 200 }}>{row.reviewerID}</td>
+          </tr>
+            ))} */}
+                </div>
+        }
+
+
+        return (
+
+            <div style={{ border: 'outset', textAlign: 'center' }}>
+
+                <div >
+                    Top or Bottom:
+               <button
+                        className={btn_classtype2}
+
+                        title={"Top"}
+
+                        onClick={() => {
+                            this.setState({ Type: 'Top' });
+                            // this.setState({TopClicked:false });
+                            if (this.state.TopsClicked === true) { this.setState({ TopsClicked: !this.state.TopsClicked }) }
+                            console.log(this.state.Type + "Top")
+                        }}
+                        color="#841584"
+                    >Top</button>
+
+                    <button
+                        className={btn_classtype}
+
+                        title={"Bottom"}
+
+                        onClick={() => {
+                            this.setState({ Type: 'Bottom' });
+                            // this.setState({TopClicked:false });
+                            if (this.state.TopsClicked === false) { this.setState({ TopsClicked: !this.state.TopsClicked }) }
+                            console.log(this.state.Type + "BOTTOM")
+                        }}
+                        color="#841584"
+                    >Bottom</button>
+
+                </div>
+
+                <div >
+                    Projects or Reviewers:
+
+               <button
+                        className={btn_classIs2}
+                        title={"Projects"}
+
+                        onClick={() => {
+                            this.setState({ IsProject: 'true' });
+                            // this.setState({ProjectsClicked:true });
+                            if (this.state.ProjectsClicked === true) { this.setState({ ProjectsClicked: !this.state.ProjectsClicked }) }
+
+                        }}
+                        color="#841584"
+                    >Projects</button>
+                    <button
+                        className={btn_classIs}
+                        title={"Reviewers"}
+
+                        onClick={() => {
+                            this.setState({ IsProject: 'false' });
+                            //  this.setState({ProjectsClicked:false });
+                            if (this.state.ProjectsClicked === false) { this.setState({ ProjectsClicked: !this.state.ProjectsClicked }) }
+                            console.log(this.state)
+                        }}
+                        color="#841584"
+                    >Reviewers</button>
+
+                </div>
+
+                <form onSubmit={this.submitHandler}>
+                    <div>
+                        <input type='text' name='N' value={N} onChange={this.changeHandler} placeholder='N' />
+                    </div>
+                    {/* <div>
+                    <input type='text' name='Type' value={Type}  onChange={this.changeHandler} placeholder='Enter:Top or Bottom'/>
+                </div>
+                <div>
+                    <input type='text' name='IsProject' value={IsProject}  onChange={this.changeHandler} placeholder='Groupby: Projects or Reviewers'/>
+                </div> */}
+                    <button type='submit'>Submit </button>
+                </form>
+                <div>{message}</div>
+
+                {errorMsg ? <div style={{ border: 'solid', borderColor: 'red' }} >{errorMsg}</div> : null}
+                {errorMsg2 ? <div style={{ border: 'solid', borderColor: 'red' }} >{errorMsg2}</div> : null}
+
+            </div>
+        )
+    }
+
+}
+export default Top
diff --git a/React/test-http/src/components/TopInsides.js b/React/test-http/src/components/TopInsides.js
new file mode 100644
index 0000000000000000000000000000000000000000..131757e99eed04bc1005e4c9e5f82d23a27d2e4e
--- /dev/null
+++ b/React/test-http/src/components/TopInsides.js
@@ -0,0 +1,59 @@
+import React from 'react'
+
+export default function TopInsides(posts, IsProject) {
+    let n = 0
+    let message
+    let toppings
+  
+
+        if(IsProject==='true'||IsProject===true){
+            console.log(IsProject+"   IS TRUE")
+            message=    posts.map(row => (
+                
+                    <tr key={row.id} style={{ display: 'flex', justifyContent: 'center' }}>
+                          <td style={{ border: "1px solid rgb(0, 0, 0)", backgroundColor: (n % 2) === 1 ? '#aae' : '#dde', width: 300 }}>{row.grade}</td>          
+                         <td style={{ border: "1px solid rgb(0, 0, 0)", backgroundColor: (n % 2) === 1 ? '#aae' : '#dde', width: 300 }}>{row.assingmentName}</td>
+                         <td style={{ border: "1px solid rgb(0, 0, 0)", backgroundColor: (n++ % 2) === 1 ? '#aae' : '#dde', width: 200 }}>{row.assingmentID}</td>
+                     
+                     </tr>
+              
+                       ))
+        
+                       toppings=  <tr style={{ display: 'flex', justifyContent: 'center' }}>
+                       <td style={{ border: "1px solid rgb(0, 0, 0)", width: 300 }}>Grade</td>
+                      <td style={{ border: "1px solid rgb(0, 0, 0)", width: 300 }}>Assignment name</td>
+                      <td style={{ border: "1px solid rgb(0, 0, 0)", width: 200 }}>Assignment ID</td>
+                     
+                  </tr>
+        
+         }else if(IsProject==='false'||IsProject===false){
+            console.log(IsProject+"   IS FALSE")
+            message=   posts.map(row => (
+                
+                <tr key={row.id} style={{ display: 'flex', justifyContent: 'center' }}>
+                      <td style={{ border: "1px solid rgb(0, 0, 0)", backgroundColor: (n % 2) === 1 ? '#aae' : '#dde', width: 300 }}>{row.grade}</td>          
+                 
+                     <td style={{ border: "1px solid rgb(0, 0, 0)", backgroundColor: (n++ % 2) === 1 ? '#aae' : '#dde', width: 200 }}>{row.reviewerID}</td>
+                 </tr>
+          
+                   ))
+                toppings=  <tr style={{ display: 'flex', justifyContent: 'center' }}>
+                <td style={{ border: "1px solid rgb(0, 0, 0)", width: 300 }}>Grade</td>
+             
+               <td style={{ border: "1px solid rgb(0, 0, 0)", width: 200 }}>Reviewer ID</td>
+           </tr>
+                
+                }
+             
+                console.log(IsProject+"   IS IT THO PROJECT?")
+            return (
+                <div>
+                    {toppings}
+                   { message}
+                </div>
+            )
+
+
+    }
+   
+