Skip to content

Commit

Permalink
[deployment] Add build action on PRs (#5)
Browse files Browse the repository at this point in the history
* Fix build issues

* Add mdx to support md

* Create build.yml

* Test deployment

* Add pnpm

* Move contract to const

* Add package.lock for build

* Remove webpack config

* Add static params function

* Fix rmi error

* Update nextjs.yml
  • Loading branch information
adityapawar1 authored Jan 17, 2025
1 parent f2a39ae commit 377081d
Show file tree
Hide file tree
Showing 11 changed files with 4,982 additions and 1,049 deletions.
25 changes: 25 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Build Next.js app
on:
pull_request:

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: 20

- name: Cache
uses: jongwooo/next-cache@v1

- name: Checkout code
uses: actions/checkout@v2

- name: Install dependencies
run: npm ci

- name: Build Next.js app
run: npm run build
4 changes: 0 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,7 @@ First, run the development server:
```bash
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
```

Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import Markdown from 'react-markdown';
import contract from '@/data/contract.md';
import { contract } from '@/data/contract';

export default function ContractPage() {
return (
Expand Down
8 changes: 7 additions & 1 deletion app/(default-layout)/projects/[name]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,12 @@ type ProjectDetailsPageProps = {
params: Promise<{ name: string }>;
};

export async function generateStaticParams() {
return Object.keys(projects.projects.projects_list).map(name => ({
name: name,
}));
}

export default async function ProjectDetailsPage({
params,
}: ProjectDetailsPageProps) {
Expand All @@ -27,7 +33,7 @@ export default async function ProjectDetailsPage({
<h1 className="static-page-header marginBot-md">{data.title}</h1>
<p>{data.short_summary}</p>
<div className="project-article-links-container marginBot-md">
<Link className="homepage-link" href={data.org_link}>
<Link className="homepage-link" href={data.org_link ?? ''}>
<div className="flex flex-row">
Learn More
<FaAngleRight className="my-auto font-normal" />
Expand Down
80 changes: 80 additions & 0 deletions data/contract.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
export const contract = `
# Blueprint: Contract and Terms of Work
_Last updated: June 2024_
This document serves as a repository for Blueprint's general terms of work with its nonprofit partners. It should set the expectations for Blueprint's **specialization of work**, **development cycle**, and **work contract**, so you can see if your organization is a good fit for Blueprint's services. Once an organization is selected to work with Blueprint, a customized version of this contract, along with all details of the project deliverables, will be signed by both parties.
## Specialization of Work
Our projects require a large time investment for our developers and designers (see the next section, "Timeline"), showcasing our equally as great commitment towards your organization's success. The type of project that we look for is one that will enable your organization to scale and achieve a level of operation otherwise unreachable without the assistance of our technology. It does not matter how big or small you are already--**if you believe that we can help you create meaningful change, pitch us your idea**.
### Examples of Accepted Projects
- A web portal for Black, LGBTQ+/SGL, and other marginalized communities to find and connect with organizations nationwide. See the [demo](http://nbjc-staging.herokuapp.com/), or [see National Black Justice Coalition’s project recap →](https://medium.com/blueprint/national-black-justice-coalition-a-project-recap-119189865a5f)
- A progressive web application with offline capability to help electricians maintain solar powered grids. This app was handed off for internal use, but check out our custom [documentation](https://github.com/calblueprint/meepanyar/wiki) for users and developers! [See Mee Panyar Project Recap →](https://medium.com/blueprint/mee-panyar-a-project-recap-8b3c95d6040c)
- A customer rewards program and store locator mobile app ([see it on the App Store](https://tiny.cc/HealthyCornersApp)) aimed at increasing accessibility to affordable healthy food in DC's food deserts through DC Central Kitchen's Healthy Corners stores. [See DC Central Kitchen Case Study →](https://medium.com/blueprint/expanding-access-to-healthy-food-in-food-deserts-fa83f4810fca)
- And [more of our past projects on our website](https://calblueprint.org/projects) or more [detailed recaps on our Medium →](https://medium.com/blueprint/projects/home)
**Examples of projects that will NOT be accepted:** Redesigning a static website, refactoring old codebases to use newer technology, creating a mobile app "version" of already existing technology that is already effectively solving the problem.
### Technology
Blueprint's developers have created many kinds of software. We specialize in **web application and mobile application development**, but these are by no means strict limitations. We are eager to hear your proposals.
For the tech savvy, our projects usually run on a [React](https://reactjs.org/) or [React Native](https://reactnative.dev/) frontend. Recently, we've also started to use [Typescript](https://www.typescriptlang.org/) syntax and [Supabase](https://supabase.com/) as a backend for some of our web and mobile apps. We strive to use the latest and most accessible technology, and this past year, we've had success building web apps using a combination of [NextJS](https://nextjs.org/) and [Retool](https://retool.com//).
## Timeline and Development Cycle
We are based at the University of California, Berkeley, and our developers are all students attending the university. We ask you to be cognizant of our development cycle, which is closely tied to our semesterly system of recruitment and breaks.
### Timeline
_Exact dates may vary slightly._
**Week 1 — September 7th**
We have recruited all designers and developers for the semester. They are introduced to their respective project teams.
**Week 4 — September 30th**
Developers, designers and the project lead (which make up the project team) finalize project scoping and create the final contract of work between Blueprint and the nonprofit which is then signed by both parties. By this time, a digital prototype will have been designed and approved, and feature development is underway.
Note: When both parties agree to this project proposal, it should be agreed upon and set unless in otherwise unforeseen circumstances. There may be pivots or revalued features, but not a revamp that fundamentally changes the purpose and/or mission of what we are trying to achieve.
**Week 8 — October 28th**
First-quarter check-in. Project team and the nonprofit meet (either in-person or remotely) to check in and relay updates regarding design and development progress.
**Week 14 — November 28th**
Midpoint check-in. Project team and the nonprofit meet to check in. The minimum testable product (MTP) should be mostly complete at this time.
**Week 16-21 — December 16th - January 17th**
Project team remains on university break during this period.
**Week 23 — February 7th**
Blueprint recruits new members to fill in project team members that have graduated. Design and development resume.
**Week 30 — March 24th**
Third-quarter check-in. Project team and the nonprofit meet to check in. Any final feature adjustments and refinements **should be made at this point.**
**Week 38 — May 5th - 19th**
Project team meets at the NPO's office to give a live presentation and hand off final product. If this is not possible it will be held remotely.
### Communication
Project teams and their nonprofits will try to meet every other week to give brief status updates regarding the project and answer any questions. More in-depth check-ins will be held quarterly over the entire development cycle. We want to have as open of a communication channel as possible, so we will always be open via email or phone to answer any questions or concerns.
## Cost
Blueprint's services are offered **completely pro bono**. Our developers and designers are highly-skilled individuals who have had experience working at Silicon Valley's leading tech companies, but we're also students who share a concern for improving our community. We choose to donate our free time towards these humanitarian causes because we are confident that we can build the technology to help you realize your goals. **All we ask is your continued commitment towards us throughout the year we work together.**
Looking forward to working with you,
![Blueprint Logo](https://user-images.githubusercontent.com/5278006/32311415-bcdef6f6-bf55-11e7-9e8c-e43e786685cf.png)
`;
1 change: 0 additions & 1 deletion global.d.ts

This file was deleted.

22 changes: 0 additions & 22 deletions next.config.ts
Original file line number Diff line number Diff line change
@@ -1,28 +1,6 @@
import type { NextConfig } from 'next';

const nextConfig: NextConfig = {
webpack: (config, options) => {
config.module.rules.push({
test: /\.md/,
use: [
{
loader: 'raw-loader',
},
],
});

return config;
},
experimental: {
turbo: {
rules: {
'*.md': {
loaders: ['raw-loader'],
as: '*.js',
},
},
},
},
images: {
dangerouslyAllowSVG: true,
contentSecurityPolicy: "default-src 'self'; script-src 'none'; sandbox;",
Expand Down
Loading

0 comments on commit 377081d

Please sign in to comment.