- Overview
- Feature Highlights
- Organizational Structure & Event Flow
- Getting Involved & Membership
- Participation & Workflows
- Limitations, Known Issues & Future Roadmap
- Contributing & Development Guidelines
- License, Credits & Contact
- Appendix
Welcome to the Google Developer Student Clubs (GDSC) at SUNY Farmingdale!
Our mission at GDSC Farmingdale State College is to provide an invaluable opportunity for students to gain practical experience in building applications and services, develop their skills in software engineering, and explore new areas of technology. We believe this hands-on approach is crucial for preparing students for successful careers in the technology industry and empowering them to contribute to innovative solutions that positively impact society.
Google Developer Student Clubs (GDSCs) are community groups for students passionate about learning and practicing development skills. These clubs are designed to help students learn how to build real-world solutions using Google's technologies and platforms, as well as to provide a platform for students to connect, learn, and grow together in a supportive environment.
- Educate: Offer workshops, study jams, and learning sessions on various Google technologies and industry-relevant topics.
- Innovate: Encourage students to work on practical projects, developing solutions to real-world problems.
- Connect: Build a strong community where students can network with peers, mentors, and industry professionals.
- Empower: Help students build their portfolios, enhance their resumes, and prepare for tech careers.
Many academic programs focus heavily on theoretical knowledge. GDSC Farmingdale bridges this gap by offering practical, hands-on experience, allowing students to apply classroom learning to real-world scenarios. We provide a space to experiment, fail fast, learn, and grow, which are critical skills often refined outside traditional coursework.
Our club is primarily for all SUNY Farmingdale students interested in technology, regardless of their major, experience level, or background. Whether you're a beginner curious about coding, an experienced developer looking for collaborators, or simply want to learn about the tech industry, GDSC Farmingdale is for you!
Here are some of the key activities and benefits you can expect as part of GDSC Farmingdale:
- 📚 Hands-on Workshops & Study Jams:
- 🔍 Explore New Tech: Dive into topics like Web Development (React, Angular), Mobile Development (Flutter, Android), Cloud Computing (Google Cloud Platform), Machine Learning, and more!
- ✅ Skill Development: Learn practical coding skills through guided tutorials and exercises.
- 💡 Expert Guidance: Sessions led by experienced students and sometimes industry professionals.
- 🚀 Project-Based Learning:
- 🤝 Collaborative Projects: Work in teams on real-world projects that solve local problems or explore new technologies.
- 📈 Portfolio Building: Create tangible projects to showcase your skills to potential employers.
- 💡 Mentorship: Receive guidance from core team members and faculty advisors on project design and implementation.
- 🌐 Networking Opportunities:
- 🧑🤝🧑 Peer Connection: Meet like-minded students, form study groups, and find project collaborators.
- 💼 Industry Exposure: Opportunities to connect with professionals and alumni in the tech field.
- 🎉 Community Events: Social gatherings, hackathons, and other fun events to build camaraderie.
- 🎓 Career & Professional Development:
- 📝 Resume & Interview Prep: Sessions focused on technical interview skills and resume building.
- 🔑 Google Certifications: Resources and study groups to help you prepare for Google Developer certifications.
- 📢 Leadership Opportunities: Join the core team, lead workshops, or mentor fellow students.
Understanding how GDSC Farmingdale operates provides insight into our commitment to student growth and engagement.
This diagram illustrates the core components and flow of activities within our club, from planning to execution and feedback.
graph TD
subgraph Core Leadership & Planning
L[GDSC Lead] --> M[Core Members]
M --> P[Faculty Advisor]
end
subgraph Event & Project Lifecycle
A[Idea Generation & Brainstorming] --> B(Curriculum/Project Proposal)
B -- Reviewed by --> M
M -- Approved --> C[Resource Allocation & Scheduling]
C --> D[Event Promotion & Registration]
D --> E[Workshop / Project Session Execution]
E --> F[Hands-on Learning & Mentorship]
F --> G[Project Development & Collaboration]
G --> H[Feedback Collection & Evaluation]
H --> I[Knowledge Sharing & Showcase]
I --> A
end
subgraph Community Engagement
E -- Engages --> S[Students/Attendees]
F -- Supports --> S
S -- Provides --> H
S -- Participates in --> I
end
L --- "Guides & Mentors" --> M
P --- "Oversight & Support" --> M
M --- "Organizes & Leads" --> E
M --- "Facilitates" --> F
M --- "Supports" --> G
L --- "Strategic Direction" --> A
I --- "Inspires" --> A
- GDSC Lead: The primary student leader responsible for the overall vision, strategy, and management of the club. They coordinate core members and act as the main liaison with Google Developers and faculty.
- Core Members: Dedicated students who form the operational backbone of the club. They are responsible for planning, organizing, leading workshops, mentoring, and managing specific projects.
- Faculty Advisor: A faculty member from SUNY Farmingdale who provides guidance, institutional support, and ensures alignment with academic standards.
- Event & Project Lifecycle: This represents the iterative process of how events and projects are conceived, developed, executed, and refined within the club.
- Idea Generation: Brainstorming potential workshop topics or project ideas.
- Curriculum/Project Proposal: Formalizing ideas into detailed plans for events or projects.
- Resource Allocation & Scheduling: Securing venues, equipment, and setting dates/times.
- Event Promotion & Registration: Marketing events to the student body and managing sign-ups.
- Execution (Workshop/Project Session): Delivering the actual content, whether it's a coding workshop or a project work session.
- Hands-on Learning & Mentorship: Core members actively assist and guide students during learning activities.
- Project Development & Collaboration: Students work on projects, often collaboratively, applying learned skills.
- Feedback Collection & Evaluation: Gathering input from attendees and participants to improve future events.
- Knowledge Sharing & Showcase: Providing platforms for students to present their projects and share their learning with the wider community.
- Community Engagement: Represents the active involvement of students and attendees in the club's activities.
While not a single application, GDSC Farmingdale leverages and educates on a diverse range of technologies, primarily within the Google ecosystem:
- Cloud Platform: Google Cloud Platform (GCP) for hosting applications, data storage, machine learning services (Firebase, Google App Engine, Compute Engine, BigQuery, AI Platform).
- Web Development:
- Frontend: HTML, CSS, JavaScript, React, Angular, Vue.js.
- Backend: Node.js, Python (Flask, Django), Go.
- Mobile Development:
- Android: Kotlin, Java.
- Cross-Platform: Flutter (Dart).
- Machine Learning/AI: TensorFlow, Keras, Python (scikit-learn, pandas, numpy).
- Version Control: Git, GitHub.
- Collaboration Tools: Google Workspace (Docs, Sheets, Slides), Discord, Slack, Zoom.
Joining GDSC Farmingdale is straightforward and open to all FSC students!
- Be an enrolled student at SUNY Farmingdale.
- A curiosity for technology and a willingness to learn!
- (Optional but Recommended) A GitHub account for collaborating on projects.
-
Join Our Official Community Platform:
- Navigate to our GDSC Community Page.
- Click "Join" and sign in with your Google account. This is where we announce all our events and activities.
💡 **Why Join on the Official Platform?**
Joining on the GDSC platform ensures you receive official event invitations, updates directly from Google, and access to exclusive GDSC resources and opportunities. -
Follow Our Social Media (Optional but Recommended):
- Stay updated on our latest news, event reminders, and casual announcements. (e.g., Instagram, Discord – specific links usually provided on our GDSC Links Website).
-
Attend an Event!
- Check our Events Calendar for upcoming workshops, study jams, and project meetings.
- Simply show up! Our events are designed to be welcoming to newcomers.
For most hands-on workshops, you'll benefit from having a basic development environment set up.
# Example: Basic setup for web development workshops
# 1. Install Node.js (includes npm)
# - Download from official website: https://nodejs.org/en/download/
# - Or using a package manager (e.g., nvm on macOS/Linux, Chocolatey on Windows)
# curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash # for nvm
# nvm install --lts
# nvm use --lts
# 2. Install a Code Editor (e.g., VS Code)
# - Download from: https://code.visualstudio.com/download
# 3. Install Git (if not already installed)
# - Download from: https://git-scm.com/downloads
# - Configure Git:
# git config --global user.name "Your Name"
# git config --global user.email "your.email@example.com"
# 4. (Optional) Create a GitHub account
# - Register at: https://github.com/joinEnvironment Variables / Project-Specific Configs: For specific projects or advanced workshops, you might need to set up environment variables or configuration files. Instructions will be provided during those specific sessions.
"Running" in the context of GDSC often refers to actively participating in our community and projects.
- Development (Learning & Experimentation):
- Attend Workshops: Regularly participate in our hands-on workshops to learn new skills.
- Work on Personal Projects: Apply what you learn by building your own small projects or following tutorials.
- Contribute to Club Projects (Development Phase): Join a project team and contribute code, documentation, or design. This is your "dev" environment for collaborative learning.
- Production (Showcasing & Impact):
- Present Your Projects: Showcase your work during club meetings, hackathons, or demo days.
- Deploy Solutions: For club projects that address real-world problems, we aim to deploy them to platforms like Google Cloud, making them accessible and impactful.
Here are common ways to engage with GDSC Farmingdale and typical workflows you'll encounter.
- Discover an Event: Check our GDSC Community Page or social media for an interesting upcoming workshop.
- Register: RSVP for the event on the GDSC platform. This helps us gauge attendance and prepare resources.
- Prepare: If specified, install any prerequisites (e.g., Node.js, VS Code) before the workshop.
- Attend: Join the session (in-person or virtual). Bring your laptop, enthusiasm, and questions!
- Participate: Follow along with the instructor, ask questions, and collaborate with peers.
- Review: After the workshop, review the materials, practice what you learned, and share your feedback.
- Identify a Project: Look for active projects on our GitHub Organization or listen for announcements about new initiatives.
- Join a Team: Express interest to the project lead (usually a core member) or during a project meeting.
- Understand the Project:
- Read the project's README and documentation.
- Discuss with the team to understand the goals, current status, and tech stack.
- Familiarize yourself with the issue tracker (GitHub Issues).
- Pick a Task: Select an open issue or a task that aligns with your skills and interest. Communicate your choice to the team.
- Develop:
- Fork the repository and create a new branch for your work.
- Write code, tests, or documentation.
- Regularly commit your changes with clear messages.
- Seek help or review from teammates when stuck.
- Submit a Pull Request (PR):
- Once your work is complete, open a PR to the main repository.
- Clearly describe your changes and link to the relevant issue.
- Address any feedback from code reviewers.
- Iterate & Deploy: Your changes will be merged, and the team will work towards deploying the project.
When working on collaborative projects hosted on GitHub, you'll commonly use these Git commands:
# 1. Clone a project repository
git clone https://github.com/GDSC-FSC/your-project-repo.git
cd your-project-repo
# 2. Create a new branch for your feature/fix
git checkout -b feature/my-new-feature
# 3. Make changes, then stage and commit them
git add .
git commit -m "feat: Add new user authentication flow"
# 4. Pull latest changes from the main branch before pushing (to avoid conflicts)
git pull origin main # or 'master' depending on repo config
# 5. Push your branch to GitHub
git push origin feature/my-new-feature
# 6. (After pushing) Open a Pull Request on GitHub
# - Go to the repository on GitHub and follow the prompts.Here's a simplified example of a "Hello World" in Flutter, a common technology covered in GDSC workshops:
// main.dart - A simple Flutter application
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'GDSC Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: Scaffold(
appBar: AppBar(
title: const Text('Hello GDSC Farmingdale!'),
),
body: const Center(
child: Text(
'Welcome to our Flutter workshop!',
style: TextStyle(fontSize: 24, fontWeight: FontWeight.bold),
),
),
),
);
}
}To run this Flutter app:
# Assuming Flutter SDK is installed and configured
flutter create my_gdsc_app
cd my_gdsc_app
# Replace lib/main.dart with the code above
flutter run- Learning a New Skill: Attend a themed workshop (e.g., "Intro to Machine Learning with TensorFlow").
- Building Your Portfolio: Join a group project to create a web app for a local charity.
- Networking: Participate in social events or virtual meetups to connect with peers and mentors.
- Solving a Problem: Collaborate on a project that addresses a specific need within the campus or local community.
- Preparing for a Career: Attend interview prep sessions and leverage GDSC project experience in your job applications.
As a student-run organization, we operate with certain realities and are always striving to improve.
- Volunteer-Driven: Our activities are powered by the dedication of student volunteers. This can sometimes lead to varying levels of availability or project timelines.
- Resource Constraints: Access to specialized equipment, software licenses, or funding might be limited compared to professional organizations.
- Time Commitment: Balancing academic responsibilities with club activities can be challenging for core members and participants.
- Scheduling Conflicts: Finding times that work for all students can be difficult due to diverse academic schedules. We try our best to offer flexible options.
- Technical Setup Challenges: Sometimes students encounter issues setting up development environments. We provide support, but individual system configurations can vary widely.
- Expand Workshop Offerings: Introduce more advanced topics and niche technologies (e.g., Web3, game development).
- Initiate Larger-Scale Projects: Tackle more ambitious, multi-semester projects with real-world impact.
- Strengthen Industry Partnerships: Invite more guest speakers, organize tech talks, and explore internship opportunities with local companies.
- Mentorship Program: Establish a formal mentorship program connecting experienced students with beginners.
- Inter-Club Collaborations: Partner with other campus clubs or GDSCs from neighboring colleges for joint events.
We are always open to suggestions from our members! If you have an idea for a workshop, a project, or a new initiative, please reach out to the core team or GDSC Lead. Your input directly shapes the future of GDSC Farmingdale!
GDSC Farmingdale thrives on community involvement! We encourage all members to contribute, whether it's to our projects, by leading a session, or by helping organize events.
- Join a Project: Look at our GitHub Organization for active projects. Reach out to the project lead or the core team to get involved.
- Lead a Workshop/Session: Have expertise in a particular technology? We encourage members to propose and lead their own learning sessions. Contact the core team with your idea!
- Event Volunteering: Help with event setup, registration, or logistics during our workshops and activities.
- Documentation & Content: Contribute to project documentation, create tutorials, or help maintain this README.
- Share Your Ideas: Participate in brainstorming sessions and provide feedback.
When contributing code to any of our GitHub repositories, please follow these guidelines:
- Fork & Clone: Fork the target repository, then clone your fork to your local machine.
- Branching Strategy: Create a new descriptive branch for each feature or bug fix:
feature/add-user-profilefix/bug-login-issuedocs/update-readme
- Commit Messages: Write clear, concise, and descriptive commit messages using Conventional Commits (e.g.,
feat: Implement user login endpoint,fix: Correct typo in header). - Pull Requests (PRs):
- Open PRs from your feature branch to the
main(ordevelop) branch of the original repository. - Provide a clear title and detailed description of your changes, including why they were made and any relevant issue numbers (e.g.,
Closes #123). - Request reviews from project leads or core members.
- Address feedback promptly.
- Open PRs from your feature branch to the
- Stay Updated: Regularly pull changes from the upstream
mainbranch into your local branch to avoid merge conflicts.
While specific guidelines may vary per project, we generally advocate for:
- Consistent Code Style: Follow established style guides (e.g., ESLint for JavaScript, Black for Python, Dart Format for Flutter). Use formatters and linters.
- Testing: Write unit and integration tests where appropriate to ensure code quality and prevent regressions.
- Documentation: Document your code, especially complex functions or components, and update project-level documentation as needed.
- Version Control: Ensure Git is installed and configured.
- Dependencies: Follow project-specific instructions for installing dependencies (e.g.,
npm install,pip install -r requirements.txt,flutter pub get). - Environment Variables: Set up any necessary environment variables for API keys, database connections, etc. (usually defined in a
.envfile and not committed to Git).
All participants in GDSC Farmingdale, including members, contributors, and leaders, are expected to uphold our Code of Conduct. Please read it carefully to understand our standards for a welcoming and inclusive community. Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to gdsc.farmingdale@gmail.com.
This organizational profile repository is typically not licensed in the same way as a software project. However, any software projects developed under the GDSC-FSC organization will usually adopt an open-source license. For consistency and to encourage open collaboration, content in this .github repository, including this README, is provided under the MIT License.
See the LICENSE.md file (if present) for full details, or assume MIT if not explicitly stated.
- Google Developers: For sponsoring the Google Developer Student Clubs program and providing resources and support.
- SUNY Farmingdale State College: For hosting and supporting our student organization.
- Our Faculty Advisor: For invaluable guidance and mentorship.
- All GDSC Farmingdale Core Members: For their tireless dedication and effort in organizing events and projects.
- Our Amazing Community Members: For your active participation, enthusiasm, and contributions that make GDSC Farmingdale vibrant!
For general inquiries, collaboration proposals, or to report any issues related to GDSC Farmingdale, please contact:
- Email: gdsc.farmingdale@gmail.com
- GDSC Lead: @WomB0ComB0
- Core Members:
Q: Do I need to be a Computer Science major to join GDSC?
A: Absolutely not! GDSC is open to all SUNY Farmingdale students, regardless of major or background. We welcome anyone interested in learning about technology.Q: What if I have no coding experience?
A: That's perfectly fine! Many of our workshops are designed for beginners. We aim to provide a supportive environment for learning from the ground up.Q: How often do events take place?
A: We aim to hold regular events, typically one or two major workshops/meetings per month, along with smaller study jams or social gatherings. Check our Events Calendar for the most up-to-date schedule.Q: Can I suggest a topic for a workshop or a project idea?
A: Yes, please do! We highly encourage members to suggest topics or project ideas. Reach out to any core member or the GDSC Lead with your suggestions.Q: Are there any membership fees?
A: No, joining GDSC Farmingdale and participating in our events is completely free for all SUNY Farmingdale students!v1.0.0 - 2023-10-27
- Initial comprehensive README generated for the GDSC-FSC organization.
- Incorporated content from
profile/README.mdandCODE_OF_CONDUCT.md. - Added sections for features, architecture, getting involved, roadmap, and more.
- Included Mermaid diagram for organizational/event flow.
- "My code isn't running!"
- Check Syntax: Look for typos, missing semicolons, or incorrect casing.
- Console/Terminal Output: Read the error messages carefully. They often point to the exact problem.
- Dependencies: Ensure all required libraries/packages are installed (e.g.,
npm install,pip install). - Environment: Verify your environment variables are set correctly if applicable.
- Seek Help: Don't hesitate to ask for help in our club's chat channels or during a workshop.
- "I can't access a Google Cloud service."
- Permissions: Ensure your Google account has the necessary IAM permissions for the specific service.
- Billing: Verify that billing is enabled for your GCP project (if required for the service).
- API Enabled: Check if the specific Google Cloud API is enabled for your project.
- "Git conflicts when pulling/pushing."
- Pull First: Always
git pull origin main(ormaster) before starting new work or pushing your changes. - Resolve Manually: If conflicts occur, Git will guide you. Manually edit the conflicted files to choose the correct changes, then
git addandgit commit.
- Pull First: Always
- Official GDSC Website: developers.google.com/community/gdsc
- Google Developers Documentation: developers.google.com (Comprehensive documentation for all Google technologies)
- Flutter Documentation: docs.flutter.dev
- Firebase Documentation: firebase.google.com/docs
- Google Cloud Documentation: cloud.google.com/docs
