Projects

List of projects the Tech Team has worked on

Blueprint Admin - Spring 2024

Blueprint Admin Spring 2024

We are glad that you have decided to join the Tech Team this semester. We hope this experience serves as an introduction to the world of software development. By the end of the semester, you will be able to improve your coding skills and have a greater understanding of Web/API development. 

Overview of the project

To help our Project Teams develop software faster, we provide the teams with a staging environment. Here, Project Teams are able to deploy a production-ready application that will help them test new features and showcase their progress to the NPOs. We don't want anyone to have access to this staging environment. Therefore, we use a tool named SSO (Authelia).

Have you noticed that whenever you try to access Canvas or Workday, you are prompted to log in to a page? This is an SSO. It is a way for Blueprint to have a homogenous login. The SSO we use is called Authelia. The way Authelia retrieves the users with permission is through a YAML file. For example: 

users:
  user1:
    disabled: false
    displayname: Blueprint User 1
    password: existingpassword
    email: user1@blueprint.com
    groups:
      - admin
      - dev
  user2:
    disabled: true
    displayname: Blueprint User 2
    password: existingpassword
    email: user2@blueprint.com
    groups:
      - admin

The main feature of our project is having a way to manage this YAML file. We need to be able to add, delete, disable, and update users in this YAML file. However, we also want to extend the functionality of our application by adding new features such as Team Management, Finances, Blog management, and Event Management. 

Blueprint Admin (Frontend)

The frontend application is currently being developed with React using TypeScript. The web application should have the following pages:

  1. Member Management
  2. Application Management
  3. Team Management
  4. Budget Management

Member Management

The User Management page serves as the central hub for administrators to oversee and control user access and profiles within the system. This page allows for creating, editing, and deleting user accounts, enabling administrators to assign or revoke permissions and access levels. Key features include user search, filter options to locate users quickly, and detailed user profile views that display login history, activity logs, and personal settings. Through this interface, administrators can also reset passwords, manage roles (e.g., admin, user, guest), and set up multi-factor authentication to enhance security.

Application Management

The Application Management page is tailored to oversee and process applications submitted to the organization. This platform serves as a centralized system for administrators to review, sort, and respond to various applications efficiently. Key functionalities include viewing and assessing each application, tracking its status (e.g., received, under review, approved, rejected), and managing communications with applicants directly from the interface.

Team Management

The Team Management page focuses on facilitating team organization, collaboration, and productivity within the company or system. It provides tools for creating and managing team structures, including working groups. Administrators can assign members to teams, set roles and responsibilities, and track progress on team objectives or projects. Features may include shared calendars, task assignments, performance metrics, and communication tools to support effective teamwork. The page aims to centralize team resources and information, making it easier to manage workflows and ensure that team members are aligned with their goals and deadlines.

Budget Management

The Budget Management page provides a comprehensive way to track Blueprint's budget. Throughout the semester, we organize various events for which we need a budget. This page will help us track how much of our budget we have allocated to events and how much we have left for future events. Since we are migrating our servers to a cloud provider, we need to see if our server usage will exceed the budget.

Blueprint Admin (Backend)

User Management

Staging Environment

The blueprint staging environment serves two primary purposes.

Currently the staging environment is hosted on one singular machine sponsored by EzriCloud. As Stevens IT is unable to provide us with a working cloud machine. In the future, we hope to move our infrastructure to AWS once we have a stable funding for it.

Ezri Zhu should be the primary contact for any server issues. They can be reached via their discord.

The server's NixOS configuration code is made available here https://github.com/stevensblueprint/techops/

Below are the things that is currently on stag0.nyc.sitblueprint.com

NYCMesh team staging service (deployed via docker compose)

AAD-ADMIN team staging service (deployed via docker compose)

C4P team staging service (deployed via docker compose)

Authelia SSO w/ nginx reverse proxy (deployed via NixOS configuration)

Vaultwarden password manager (deployed via NixOS configuration)

Bookstack (this wiki) (deployed via NixOS configuration)

Blueprint internal admin dashboard (deployed via docker compose)

Blueprint internal admin backend (deployed via docker compose)

Blueprint internal user management service (deployed via docker compose)

Kubernetes

For the fall 2024 semester, we are planning on launching our internal k8s platform to run the things that we're currently running on docker compose.

Although using kubernetes at our current scale is probably not the greatest idea in terms of maintainability, we are still choosing to do this so that interested tech team members can learn to operate k8s containers.

We will likely be using k3s - https://k3s.io/

Ezri Zhu will be the project owner for the k8s cluster, they can be reached via discord.

This page is currently WIP.

Blueprint Admin Design Spec

Blueprint Admin Design Spec

Problem Overview

We develop software for non-profits at no cost. To promote talent at Blueprint we run the Tech Team that serves as low commitment team where Stevens students can come and learn software engineering skills. Currently, Blueprint has around 40 active members that work on the projects with the NPOs and in the Tech Team. Software development and the usage of computing and building tools. Managing the access of said resources for every member has become unsustainable for the Blueprint e-board and Tech Lead for the project Teams. Having a centralized solution to administer Blueprint resources and manage member is necessary for the future success of the organization.

Solution Overview

To mitigate the need for a management solution, the Tech Team has started building a user/resource management solution. Most of the backend service that will power the admin has already concluded, however designs for the front-end have to be formalized.

Feature Description

The admin dashboard should provide the following features:

E-board functionality

Blueprint E-board members should be able to do the following:

Team Lead functionality

Blueprint Team Leads should be able to do the following: