Getting Started
Campus is an academic social network prototype that connects students, educators, researchers, and administrators. The project is built with modern web technologies and welcomes contributions from the community.Prerequisites
Before you begin, ensure you have the following installed:- Bun - JavaScript runtime
- PocketBase - Backend-as-a-Service
- Git for version control
Development Setup
Fork and Clone the Repository
Fork the repository on GitHub, then clone your fork:Add the upstream repository as a remote:
Configure PocketBase Backend
Download the PocketBase executable for your operating system from pocketbase.io/docs and place it in the project root.Run migrations and start the PocketBase server:PocketBase will automatically apply migrations from the
pb_migrations folder, creating the necessary database structure.Technology Stack
Familiarize yourself with the technologies used in Campus:| Category | Technology | Description |
|---|---|---|
| Frontend | Svelte 5 + SvelteKit | Reactive framework for fast web interfaces |
| Styling | Tailwind CSS v4 | Utility-first CSS framework |
| Backend/Database | PocketBase | Open-source Backend-as-a-Service (SQLite-based) |
| Runtime | Bun | JavaScript runtime |
| Components | Bits UI + Lucide | Headless UI components and vector icons |
| Validation | Zod + Superforms | Schema validation and form management |
Project Structure
Contribution Workflow
Create a Feature Branch
Before making changes, create a new branch from Use descriptive branch names:
main:feature/add-notification-systemfix/profile-image-uploaddocs/update-api-documentation
Make Your Changes
Write clean, maintainable code that follows the project’s existing patterns:
- Follow the existing code style and conventions
- Write meaningful commit messages
- Keep commits focused and atomic
- Test your changes thoroughly
Test Your Changes
Ensure your changes work correctly:
- Test all affected features manually
- Verify both frontend and backend functionality
- Check responsive design on different screen sizes
- Test in both light and dark mode if UI changes are involved
Commit Your Changes
Write clear, descriptive commit messages:Use conventional commit prefixes:
feat:- New featurefix:- Bug fixdocs:- Documentation changesstyle:- Code style changes (formatting)refactor:- Code refactoringtest:- Adding or updating testschore:- Maintenance tasks
Pull Request Guidelines
Before Submitting
- Ensure your code follows the project’s style and conventions
- Update documentation if you’re changing functionality
- Keep pull requests focused on a single feature or fix
- Rebase on the latest
mainbranch to avoid merge conflicts
PR Description Template
Provide a comprehensive description:Review Process
- Be responsive to feedback and questions
- Be open to suggestions and constructive criticism
- Make requested changes promptly
- Keep discussions professional and focused
Reporting Issues
If you find a bug or have a feature request:- Check if the issue already exists in the GitHub issues
- If not, create a new issue with a clear title and description
- Include steps to reproduce for bugs
- Add screenshots or error messages if applicable
- Tag the issue appropriately (bug, enhancement, question, etc.)
Questions?
If you have questions about contributing:- Open a GitHub Discussion
- Check existing issues and pull requests
- Review the project documentation