Tech Team
- Meetings
- April 2nd Meeting Minutes
- April 4 Meeting Minutes
- April 9th Meeting Minutes
- April 11 Meeting Minutes
- Apr 16 Meeting Minutes
- April 18th Meeting Minutes
- Projects
Meetings
April 2nd Meeting Minutes
Start 5:30 PM
End 6:10 PM
- Eric has created the attendance object and the records repository as well as the handlers
- Nicole is making progress on surveys
- Terrance has finished everything. Changed address
- Terrance is working on getting user_mangement integration testing with redis
- Terrance is also working on Dockerizing. Done with everything else
- Zuting, Thomas introduced to team
- Zuting and Thomas task pending
- Christopher E. working on issue #21 on blueprint_admin. Should be done by the end of the week. (couldn't provide update at meeting due to scheduling conflict, provided updates in DMs to ezri)
- Thomas is working on application CRUD for admin backend
- No one to work on application forms for admin backend
- Audrey can do design opportunities
- Will followup with miguel to discuses separately
April 4 Meeting Minutes
Start 7:00 PM
Attendance: Kyle Kouch, Miguel Merlin, Cameron Marotti, Christopher Engelbart, Eric Zhang, Ezri Zhu, M. Bertan Tarakcioglu, Nicole, Maya Patel, Terrence Zhang.
- Ezri:
- k8s meeting with miguel, bertan, thomas went well. They will work on the following:
- documenting existing infrastructure & process
- look into k3s
- document plans for k8s infrastructure
- document ideas for future workshops, e.g., (git, docker, etc..)
- reached out to github for enterprise
- will reach out to cs dept & SGA for funding re: servers, AI, etc..
- team 1 aad infrastructure deployed successfully, google auth working
- team c4p website deployed slightly, had an issue with mongo db and avx cpu flag, using alternative container. will finish deploying it later this week.
- Lucas:
- Added more to the PR but failed the node build test. There is a slight error regarding return types.
- Should be able to fix by tomorrow
- Christopher:
- finalized the alert and made aesthetic changes to the loading spinner. Is having issues with fetching data from the API.
- SQl script
- Eric Zhang:
- moved AttendanceService/AttendanceServiceImpl to their own repository called attendance in service repo.
- moved AttendanceRecordRepository to its own repository so its separate from users
- Deleted content of the methods.
- Miguel
- Added some features to the backend
- Wrote onboarding documents
- Need backend and user api
- Terrence
- Resolving some issues in the pull request
- Resolving some issues in the pull request
- Maya
- Saw comments and will make changes
End 7:26 PM
April 9th Meeting Minutes
Start 5:34 PM
Attendance: Kyle, Miguel, Audrey, Eric, Lucas, M. Bertan, Nicole, Sneha, Terrance, Ezri, Jason
- Christopher:
- Working on creating a SQL script for creating and populating tables.
- Audrey
- Started wireframing for blueprint admin on figma.
- Will move onto revising the design and creating mockups that will reflect the real product
- Prioritize website first, Admin second
- Ask Sahana about working together
- Lucas
- Debugging the add user button
- Eric
- Added a redirection from the read more button to the information section of the page
- Added OpenGraph tags to each file on the website, created a common OpenGraph file to be shared across all pages and in each independent page added its own unique title and URL
- Miguel
- Java backend:
- Added new class (exeptions)
- Frontend:
- Added new types of objects
- Adding the API calls
- Added some of the stops for missing pages
- Java backend:
- Nicole
- Finished the event servace repository
- Submit a pull request
- New task (Create CRUD for blog)
- Ezri
- Worked w/ jason to deploy admin backend
- Wrote some initial documents of the stag and k8s setup on the wiki
- Reached out to swics to potentially collaborate on events
- Admin backend db deployed successfully, waiting for the upstream code to read db conn url
- Created github issue #11 (seeing VM warning)
- Sneha
- Welcome email
- Submitted a pull request
- New task (change favicon to blueprint logo)
- Terrance
- Should be done with everything
- Assigned new tasks (Look into static site generator, figure out format for each members file)
- Jason
- Working with ezri on the staging environment
- postgres deployment
- Fixed error
- Need template for project descriptions
End 6:01 PM
April 11 Meeting Minutes
Start 7:04 PM
Attendance: Kyle Kouch, Miguel Merlin, Audrey Yoo, Christopher Engelbart, Eric Zhang, Ezri Zhu, Bertan Tarakcioglu, Maya Patel , Miguel Merlin, Terrence Zhang
- Christopher
- Working on the SQL script
- Audrey
- Finished the first iteration of the wireframe for the blueprint website's homepage on figma
- Ezri
- Adm dash+usermgmt cors fixed
- Preliminary debugging on admin panel for user management feature
- Miguel working on fixes
- Will work on finishing up c4p server setup and more documentation on k8s
- Will talk to eboard about turning one of the tech team meetings into a more open GBM for a bigger presence on campus
- Will work more on general tech team docs
- Bertran
- Made changes to github rules
- Maya
- Implemented changes for pr
- Miguel
- Java backend
End 7:17 PM
Apr 16 Meeting Minutes
Starting time:
Started 1730
Attendance: Ezri, Eric, Terrence, Audrey
Kyle absent due to school trip
Scribe: Ezri
Christopher Engelbart
- I finalized the script and (I think) made the necessary changes in
docker-compose.yaml
. - I’ve tested the SQL script itself in a SQL environment, but haven’t with the Docker container.
- Draft PR created
Audrey
- no update
Eric
- AttendanceServiceImpl (not tested, will make PR after)
Terrence
- website: Updated project team page
- website: template for user page done
Ended 1738
April 18th Meeting Minutes
Start 7:06 PM
Attendance: Kyle, Eric, Christopher, Bertan
- Audrey
- Working on the wireframe for the homepage
- Chrisopher
- The SQL script has been merged into the backend.
- The SQL script has been merged into the backend.
End 7:08 PM
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:
- Member Management
- Application Management
- Team Management
- 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.
- Hosting the staging environments for our project teams
- Hosting the infrastructure powering blueprint internal operations
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:
- Be able to log-in as an e-board, Teach Lead. Note: A single member might belong to multiple roles, so when the member logs in they should have the feature available for each of the roles they belong to.
- Once logged in, the member should have a sidebar where they can edit their information, such as name and password. A member should also have profile photo (Mostly all member will have a default profile photo, it could be the blueprint logo, or a stock user photo)
E-board functionality
Blueprint E-board members should be able to do the following:
- Send an invitation email to an interested member given the email and name of the member who wants to join
- View a table of all the members
- The displayed information of the members is the following:
- Roles (List of Strings)
- Team they belong to (List of String)
- Date joined (LocalDate)
- Active (Boolean)
- The table can be filtered by the afore mentioned columns
- The e-board member can edit each of the field of a member
- The displayed information of the members is the following:
Team Lead functionality
Blueprint Team Leads should be able to do the following:
- View a list of all the member associated to their team
- Edit the active status of a member team
- Take attendance of each of the meeting
- The Team Lead should be able to create an attendance record with some basic information such as Date and Location
- The Team Lead can only take attendance on the active members of the team
- View statistic on the attendance of the Team such as:
- Drop out rate of the team (How many people have been deactivated since the start of the project?)
- Attendance rate