Skip to content

adakidpv/project-guild

Repository files navigation

Project Guild

Project Guild is a Next.js app that currently ships a UOW WAM Calculator.
It helps University of Wollongong students paste transcript rows, review parsed subjects, and calculate WAM/GPA with planning tools.

Why This Exists

Students often need a fast way to:

  • understand where their WAM stands right now
  • see how special grades affect calculations
  • estimate what marks they need to hit a target

This project is meant to stay simple, transparent, and easy to improve with community contributions.

Features

  • Paste transcript data (from SOLS eRecord format) and auto-parse subjects.
  • Review/edit parsed rows before calculation.
  • Calculate:
    • WAM (weighted average mark, truncated to 2 decimals)
    • GPA (Australian 7-point style mapping used in-app)
    • Session-level WAM trend
  • Handle special grades (TF, PS, S, U, AE) with custom rules.
  • Target planner to estimate required marks for a target final WAM.
  • Mobile and desktop dashboard layouts.

Tech Stack

  • Next.js (App Router)
  • React
  • TypeScript
  • Tailwind CSS (dependencies present; app styling is mostly custom inline styles)

Getting Started

1) Install dependencies

npm install

2) Run development server

npm run dev

Open http://localhost:3000.

The root route redirects to "/wam".

Contributing

Contributions are welcome, especially around UX, reliability, and transcript parsing edge cases.

1) Pick a change

You can improve this project by:

  • fixing bugs or calculation edge cases
  • improving transcript parser compatibility
  • improving mobile UX and accessibility
  • adding tests
  • improving docs and onboarding

2) Development workflow

  1. Fork the repo.
  2. Create a feature branch:
git checkout -b feat/short-description
  1. Install and run locally:
npm install
npm run dev
  1. Make your changes.
  2. Run checks:
npm run lint
npm run build
  1. Open a pull request with:
    • what changed
    • why it changed
    • how you tested it
    • screenshots/gif for UI changes

3) PR expectations

  • Keep PRs focused and small where possible.
  • Avoid unrelated refactors in the same PR.
  • Preserve current WAM/GPA logic unless the PR is specifically about grading rules.
  • For parser logic updates, include sample input rows in PR description.

Roadmap (Good Areas To Improve)

  • Add unit tests for calculate, effectiveMark, and grade mapping logic.
  • Add parser test fixtures for multiple transcript formats.
  • Move core calculation/parsing logic into separate utility modules.
  • Add export options (CSV/PDF) for report snapshots.
  • Add input validation helpers and clearer error states for invalid paste data.
  • Improve keyboard accessibility and focus states.
  • Add a lightweight changelog section for releases.

Scripts

  • npm run dev - Start development server (Turbopack enabled)
  • npm run build - Create production build
  • npm run start - Run production server
  • npm run lint - Run Next.js lint checks

Project Structure

  • app/page.tsx - Root redirect to "/wam"
  • app/(tools)/wam/page.tsx - Main WAM calculator UI and logic
  • app/layout.tsx - Global layout, fonts, and metadata
  • app/globals.css - Global styles

Reporting Issues

When opening a bug report, include:

  • expected behavior
  • actual behavior
  • steps to reproduce
  • sample transcript lines (anonymized)
  • screenshot/video if UI related
  • browser + OS

Notes

  • The current calculator runs fully in the browser; pasted transcript content is not sent to a backend by this project code.
  • This repository currently contains a single tool experience under the "/wam" route.

Maintainer Notes

  • If you are contributing a larger feature, open an issue first to align scope.
  • If you want to help but are unsure where to start, pick one item from the roadmap and open a draft PR early.

About

A collaborative project for UOW students to create tools that help our community.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages