Skip to content

soft-eng-practicum/STaRS-AdminPanel

 
 

Repository files navigation

STaRS-Web

A web client to support the STaRS mobile application. Used to analyze and export results from judging events.


Team

  • Team Polaris - Fall 2019
  1. Nancy SardarProject Manager & Client Liaison
  2. Juan LinaresLead Programmer & Testing Lead 👻
  3. Andrew PlourdeDocumentation & Data Modeler 💭
  4. Jacob WeekleyUI/UX Designer & Lead Programmer 🏒
  • Internship - Fall 2025
  1. David FloresDeveloper 🚀

Repository Location

GitHub:
🔗 https://github.com/soft-eng-practicum/STaRS


Progress Tracking

To be announced.


Communication Tool


Installation

Prerequisites

  • Node.js (v18+ recommended)
  • npm
  • Angular CLI globally installed

Steps

Frontend

  1. Clone the repository:
    git clone https://github.com/soft-eng-practicum/STaRS.git
  2. Navigate into the project folder:
    cd STaRS-AdminPanel
  3. Install dependencies:
    npm install

Backend (Email Service)

  1. Navigate into the `server` folder:
    cd server
  2. Install backend dependencies:
    npm install

How to Run

Run the Angular Frontend

  1. From the root folder:
    npm start
  2. Open your browser and go to:
    http://localhost:4200

Run the Node Backend (Email Service)

  1. From the `server` folder:
    npm run start
  2. The backend runs at:
    http://localhost:3000

Environment Configuration (Backend)

Create a `.env` file inside the /server folder:

  • If Brevo account:
BREVO_SERVER=smtp-relay.brevo.com
BREVO_PORT=587
BREVO_USER=user@email
BREVO_PASS=your_brevo_password
BREVO_FROM="STARS Judging Support <your@email>"

Environment Configuration (Frontend)

Create a `environment.ts` file inside the /src/app/environments folder:

export const environment = {
  production: false,

  couch: {
    protocol: 'connection string protocol',
    host: 'host',
    port: 'port',
    username: '', // left blank; filled in after login
    password: '', // left blank; filled in after login

    judgesDB: 'DBname',
    confDB: 'DBname',
  },

  configurationDocId: 'DBname',
  
    // Email backend (dev)
  emailApiUrl: 'http://localhost:3000/api/send-email',
};


Environment Configuration For production (Frontend)

Create a `environment.prod.ts` file inside the /src/app/environments folder:

export const environment = {
  production: true,

  couch: {
    protocol: 'connection string protocol',
    host: 'host',
    port: 'port',
    username: '', // left blank; filled in after login
    password: '', // left blank; filled in after login

    judgesDB: 'DBname',
    confDB: 'DBname',
  },

  configurationDocId: 'DBname',

  // Email backend (prod)
  emailApiUrl: 'emailHostingUrl',
};



If Deploying with Netlify

If using drag and drop feature

Under dist/STaRS-judgin_app/browser add bash_redirects file with the following contents: bash/* /index.html 200 This is to avoid refreshing problems and drop the browser folder into Netlify to deploy

If Deploying on Netlify using GitHub

Before building on the root folder add a bashnetlify.toml file with the following contents:

[[redirects]]
from = "/*"
to = "/index.html"
status = 200 

Netlify will reference this file to allow Angular to take command of routing when refreshing no _redirects file needed in this case


Functionality

  • Poster report details can be exported to CSV (PDF optional later)
  • Judge survey results can be reviewed, sorted, and exported
  • Combined report shows all judging data in one place
  • Email service allows sending judging feedback directly to students and advisors

Security Notes

  • Credentials are stored in `.env` only (never in frontend code)
  • CORS enabled for `http://localhost:4200\`
  • SMTP connection uses TLS

Screenshots

Login

login

Dashboard

dashboard

Poster Reports

poster-reports

Judge Reports

judge-reports

Combined Reports

combined-reports `;

About

Admin panel for STaRS judging app. See angular1_x for the working version.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 47.6%
  • CSS 26.6%
  • HTML 22.9%
  • JavaScript 1.5%
  • SCSS 1.4%