BeyondGPA connects students with professors for undergraduate research projects and internships by showcasing student skills through personal and club projects. The platform allows students to upload project details and search for URPs that match their skills. It utilizes technologies like NextJS, Prisma, and PostgreSQL for its frontend and backend development.
For more information:
See the:
- Notion Page
- GitHub
- Or contact: Cooper Werner (wernec6@rpi.edu) or Dr. Shayla Sawyer (sawyes@rpi.edu)
BeyondGPA relies on the following dependencies:
- Docker
- Used to run the minio and postgres databases for file and structured data storage
- Install Docker Here
- NodeJS 24.12.0
- The latest LTS version of NodeJS, use either NVM or install directly
- Node Version Manager (NVM) for Linux/Mac
- NodeJS for Windows
- A handful of NPM packages:
- NextJS 15
- Prisma
- Tailwind
- NextAuth
- TipTap (Rich Text Editor)
-
Install Docker and NodeJS from the links above
-
Clone the source code from the GitHub repository
git clone --depth=1 https://github.com/rpi-mercerxlab/BeyondGPA -
Open the repository in VSCode
-
Copy the
.env.examplefile and rename the copy to.env -
Modify the
.envfile have the desired values (you can leave them as is for a development environment) -
Run the following command to start the database and web server:
docker compose up
Congratulations! The app is now available at localhost:3000
To stop running the server (don't worry all data will be preserved):
docker compose down
The NextJS Live Server allows us to modify the UI and backend and see those changes reflected on our machines live instead of having to rebuild the docker image each time. To do this:
-
Install the NPM dependencies locally. With the BeyondGPA app as the working directory run the following:
npm install -
Spin up all the containers:
docker compose up -
Then stop the container running the app so that we can replace it with the live server
docker kill beyondgpa-app-1 -
Modify the
.envfile to so that the database URL goes from:postgresql://user:password@database:5432/database -> postgresql://user:password@localhost:5432/database- This allows us to access the database outside the docker container. If you want to run the app from the docker image again, you will have to change the line back.
-
Generate the Prisma Client
npx prisma generate -
Run the NextJS live server:
npm run dev