Skip to main content

General Questions

Campus is a prototype academic social network that connects students, educators, researchers, and administrators. It provides a curated space for study groups, discussion forums, events, and educational resources - bridging the gap between formal learning management systems and traditional social networks.
Campus was developed as part of the Projeto Integrador course by a team of four students: Mateus G. P. Campos, Ray G. dos S. Martins, Kauê M. de Araujo, and Kevin L. R. de Candia.
Yes! Campus is available on GitHub at github.com/mgpcampos/campus. The project is marked as private in package.json but the code is accessible through the repository.

Installation & Setup

You need two main tools:
  • Bun - A modern JavaScript runtime (alternative to Node.js)
  • PocketBase - A lightweight, open-source Backend-as-a-Service
Both are required for Campus to function properly.
Campus uses PocketBase with automatic migrations. After downloading the PocketBase executable:
  1. Place it in the project root
  2. Run ./pocketbase migrate to apply database migrations
  3. Run ./pocketbase serve to start the backend server
The migrations in pb_migrations/ will automatically create the necessary database structure.
The frontend development server runs on http://localhost:5173 by default. PocketBase typically runs on port 8090. Both servers must be running simultaneously for the application to work.
While Campus is designed to use Bun as the JavaScript runtime, you may be able to use Node.js with some configuration changes. However, Bun is recommended for optimal performance and compatibility.

Features

Campus offers:
  • Social Interaction: Post feed, comments, likes, and media sharing
  • Spaces & Groups: Hierarchical community organization
  • Calendar: Event and deadline visualization
  • Events: Personal event creation and management
  • Materials: Repository for sharing educational resources
  • Academic Profiles: Details about education, research, and interests
  • User Profiles: Customization including dark mode
Campus uses a hierarchical structure where Spaces are the top-level containers, and Groups are thematic subdivisions within those Spaces. This allows for organized, purpose-driven communities.
Yes! Campus includes dark mode support as part of the user profile preferences.

Technical Questions

Campus is built with:
  • Frontend: Svelte 5 + SvelteKit
  • Styling: Tailwind CSS v4
  • Backend/Database: PocketBase (SQLite-based)
  • Runtime: Bun
  • Components: Bits UI + Lucide icons
  • Validation: Zod + Superforms
The main project structure includes:
  • src/lib/ - Reusable components, utilities, and stores
  • src/routes/ - SvelteKit file-based routing
  • pb_migrations/ - PocketBase database migrations
  • pb_hooks/ - Server-side PocketBase hooks
  • static/ - Public static files
Campus uses Biome for linting and formatting. Available scripts:
  • bun run biome:check - Check and fix issues
  • bun run biome:format - Format code
  • bun run biome:lint - Lint code
  • bun run svelte:check - Type-check Svelte components

Troubleshooting

Verify that:
  1. Both Bun and PocketBase are installed correctly
  2. You’ve run bun install to install dependencies
  3. PocketBase is running (./pocketbase serve)
  4. The frontend dev server is running (bun run dev)
  5. No other applications are using ports 5173 or 8090
Check the Getting Support page for information on how to report issues on GitHub or contact the project team.

Build docs developers (and LLMs) love