π± Welcome Sun Devils! This is the ASU CS Wiki. This project helps ASU Computer Science students navigate their academic journey with course information, career resources, and community guidance.
This wiki is maintained by SoDA (Software Developers Association) and is built with β€οΈ by the ASU CS community.
- Code of Conduct
- How Can I Contribute?
- Quick Edit (Recommended for Small Changes)
- Development Setup
- Making Changes
- Content Guidelines
- Technical Guidelines
- Submitting Changes
- Review Process
- Community and Support
This project and everyone participating in it is governed by our commitment to creating a welcoming, inclusive, and respectful environment for all ASU CS students. Please be kind, constructive, and helpful in all interactions.
- Course Information: Add course reviews, tips, prerequisites updates, professor insights
- Career Resources: Share internship experiences, interview tips, career guidance
- Campus Resources: Update information about labs, study spaces, academic support
- Guides: Create or improve guides for academic success, research opportunities, clubs
- Bug Fixes: Fix broken links, formatting issues, or functionality problems
- Feature Enhancements: Improve the interactive course map, search functionality, or UI/UX
- Performance: Optimize site speed, accessibility, or mobile experience
- Issue Reporting: Help identify bugs, outdated content, or missing information
- Testing: Test new features and provide feedback
- Feedback: Suggest improvements or new content areas
For small content changes, you can edit directly on GitHub:
- Navigate to any page on wiki.thesoda.io
- Click the "Edit page" link (appears on every page)
- Make your changes in the GitHub web editor
- Scroll down and add a descriptive commit message
- Select "Create a new branch for this commit and start a pull request"
- Click "Propose changes"
This method is perfect for:
- Fixing typos or grammar
- Updating course information
- Adding small sections to existing content
- Correcting factual information
For larger changes or technical contributions, set up the project locally:
- Node.js (version 18 or higher)
- pnpm (preferred package manager)
- Git
-
Fork the repository on GitHub
-
Clone your fork:
git clone https://github.com/YOUR_USERNAME/asu-cs-wiki.git cd asu-cs-wiki -
Install dependencies:
pnpm install
-
Start the development server:
pnpm dev
The site will be available at
http://localhost:3030
asu-cs-wiki/
βββ src/
β βββ content/
β β βββ docs/ # All wiki content (Markdown/MDX)
β β βββ Courses/ # Individual course pages
β β βββ Guides/ # Career, campus, and other guides
β βββ data/
β β βββ courses.json # Course data and prerequisites
β βββ assets/ # Images and media files
β βββ pages/ # Custom Astro pages
βββ public/ # Static files (favicons, etc.)
βββ astro.config.mjs # Site configuration
Create descriptive branch names:
content/add-cse-412-review- for content additionsfix/broken-course-links- for bug fixesfeature/course-search- for new featuresdocs/update-contributing- for documentation
Write clear, descriptive commit messages:
- β
Add CSE 412 course review and tips - β
Fix broken links in career resources page - β
Update prerequisites for CSE 310 - β
updated stuff - β
fix
When adding course information:
- Be objective: Focus on factual information rather than personal opinions
- Be specific: Include concrete examples, tips, and resources
- Stay current: Verify information is up-to-date for current semesters
- Structure consistently: Use the existing course page format
- Clear and concise: Write for fellow students who may be new to the topic
- Inclusive language: Use gender-neutral and accessible language
- Helpful tone: Be encouraging and supportive
- Proper formatting: Use Markdown formatting consistently
- All course information should be verified and current
- Links should be working and relevant
- Images should include alt text for accessibility
- Sources should be credible (official ASU sites, verified student experiences)
- Use lowercase with hyphens:
cse-310.md,career-resources.md - Match existing naming patterns in each directory
- Keep names descriptive but concise
- Use proper frontmatter for all content files:
--- title: Your Page Title description: A brief description of the page content ---
- Follow existing formatting patterns
- Use appropriate heading levels (start with
##in content) - Include table of contents for longer pages
When updating src/data/courses.json:
- Verify prerequisite information with official ASU catalogs
- Maintain the existing JSON structure
- Test that course links work correctly
- Ensure the interactive course map still functions
- Optimize images for web (WebP format preferred)
- Place images in
src/assets/ - Use descriptive filenames
- Include alt text for accessibility
- Sync your fork with the main repository
- Create a new branch from
main - Make your changes following the guidelines above
- Test your changes locally (
pnpm dev) - Commit with descriptive messages
- Push to your fork
- Open a pull request with:
- Descriptive title
- Detailed description of changes
- Screenshots (for visual changes)
- Testing steps (if applicable)
## Description
Brief description of the changes
## Type of Change
- [ ] Content update (course info, guides, resources)
- [ ] Bug fix
- [ ] New feature
- [ ] Documentation update
## Testing
- [ ] Tested locally
- [ ] Verified all links work
- [ ] Checked mobile responsiveness (if applicable)
## Screenshots (if applicable)
Add screenshots here
## Additional Notes
Any additional information or context- Initial Response: Within 1-2 days
- Review Time: 2-7 days depending on complexity
- Feedback: Constructive comments and suggestions
- Collaboration: Work together to refine the contribution
- Accuracy: Information is correct and up-to-date
- Completeness: Changes are thorough and well-explained
- Consistency: Follows existing patterns and guidelines
- Quality: Content is well-written and helpful
- Technical: Code changes don't break existing functionality
Pull requests automatically run:
- Build verification: Ensures the site builds successfully
- Link checking: Verifies internal and external links
- Deployment preview: Generates a preview of your changes
- GitHub Issues: For bug reports and feature requests
- Discussions: For general questions and ideas
- Discord: Join the SoDA Discord for real-time chat
- Email: Contact the maintainers through SoDA
- Website: thesoda.io
- Instagram: @soda.asu
- LinkedIn: SoDA
All contributors are recognized in our community and on our website. Thank you for helping make ASU CS education more accessible and successful for everyone!
Q: I'm new to GitHub/Git. How do I get started? A: Start with the Quick Edit method! For larger changes, check out GitHub's Git Handbook.
Q: How do I know if my course information is accurate? A: Cross-reference with the official ASU catalog, MyASU, and recent student experiences. When in doubt, ask current students or TAs.
Q: Can I add information about professors? A: Yes, but keep it constructive and factual. Focus on teaching style, course structure, and helpful tips rather than personal opinions.
Q: What if I disagree with existing content? A: Open an issue to discuss it! We value different perspectives and want the most helpful, accurate information.
Q: How often is the site updated? A: The site automatically updates when changes are merged to the main branch. This typically happens within 5-10 minutes of approval.
Thank you for contributing to the ASU CS Wiki! π
Your contributions help fellow Sun Devils succeed in their computer science journey. Every improvement, no matter how small, makes a difference in someone's academic experience.
Questions? Reach out to us through any of the channels listed above. We're here to help!