Skip to content

(2024) Realtime Student Q&A Forum using Rust fullstack, powered by the Leptos framework | 3rd Place Overall - 2024 Fall Bachelor's of Computer Science Capstone

License

Notifications You must be signed in to change notification settings

wenszhang/Encampus

Repository files navigation

🏷️ Project context and repository state

This project was originally developed as a year-long, 5-developer capstone hosted on a private University GitLab instance with Jira-style boards and ticket-named branches. That GitLab has since been restricted, so this GitHub repo is a mirror of the final codebase and commit history.

We worked in weekly sprints and met twice a week to prioritize tickets, set sprint goals, and keep the team unblocked. The branch names in this repo follow the original ticket IDs from that process.

🛠️ My role on the team

I served as the team's scrum master and as a full-stack developer. I facilitated our agile process and kept the board and workflow healthy by making sure tickets were well-scoped, keeping the board up to date, and surfacing blockers early so we could resolve them quickly. Working this closely with activity tracking gave me valuable experience coordinating and communicating with developers with different working styles.

Day to day, I paired with teammates, resolved blockers, planned architecture, ran UI/UX interviews and iterated on flows, prepared documentation, and checked in on progress toward sprint goals.

My most critical contributions included designing and implementing the internal API layer between the front end and back end, and leading major architectural refactors to keep the system scalable as the project scope expanded.

I enjoyed this project because it pushed me to develop the non-coding side of engineering: facilitating coordination, resolving problems, and keeping teammates motivated.

Now, on to project details:

Encampus

Encampus is a tool with the main purpose of streamlining communication within university classes, enabling students to ask both public and private questions to course staff outside of regular course hours. See Abstract for more details.

Requirements

If you don't have cargo-leptos installed you can install it with

cargo install cargo-leptos

Running Encampus locally

cargo leptos watch

Compiling for Release

cargo leptos build --release

Will generate your server binary in target/server/release and your site package in target/site

Testing Encampus

cargo leptos end-to-end
cargo leptos end-to-end --release

Cargo-leptos uses Playwright as the end-to-end test tool.
Tests are located in end2end/tests directory.

Executing a Server on a Remote Machine Without the Toolchain

After running a cargo leptos build --release the minimum files needed are:

  1. The server binary located in target/server/release
  2. The site directory and all files within located in target/site

Copy these files to your remote server. The directory structure should be:

encampus
site/

Set the following environment variables (updating for your project as needed):

LEPTOS_OUTPUT_NAME="encampus"
LEPTOS_SITE_ROOT="site"
LEPTOS_SITE_PKG_DIR="pkg"
LEPTOS_SITE_ADDR="127.0.0.1:3000"
LEPTOS_RELOAD_PORT="3001"

Finally, run the server binary.

About

(2024) Realtime Student Q&A Forum using Rust fullstack, powered by the Leptos framework | 3rd Place Overall - 2024 Fall Bachelor's of Computer Science Capstone

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages