The official website for the ColorStack chapter at Grambling State University, designed to foster community engagement, showcase member achievements, and manage chapter events for underrepresented students in technology.
π Live Website: https://colorstackgrambling.org/
- About
- Features
- Technology Stack
- Project Structure
- Getting Started
- Development Guidelines
- API Documentation
- Deployment
- Contributing
- Support
- License
ColorStack is a nonprofit organization that works to increase the number of Black and Latinx computer science graduates who enter and remain in technical careers. This website serves as the digital hub for the Grambling State University chapter, providing:
- Event management and registration
- Member spotlight features
- Community resources and networking opportunities
- Chapter news and announcements
- Professional development resources
- π Event Management: Create, manage, and track chapter events
- π₯ Member Profiles: Showcase member achievements and career journeys
- π± Responsive Design: Optimized for desktop, tablet, and mobile devices
- π User Authentication: Secure member login and registration
- π Analytics Dashboard: Track engagement and chapter metrics
- πΌ Career Resources: Job postings, internship opportunities, and professional development
- React 18.x - Modern JavaScript library for building user interfaces
- Tailwind CSS - Utility-first CSS framework for rapid UI development
- React Router - Declarative routing for React applications
- Axios - Promise-based HTTP client for API requests
- Node.js - JavaScript runtime environment
- Express.js - Fast, unopinionated web framework for Node.js
- MongoDB - NoSQL database for flexible data storage
- Mongoose - Elegant MongoDB object modeling for Node.js
- JWT - JSON Web Tokens for secure authentication
- Bcrypt - Password hashing library
- ESLint - JavaScript linting utility
- Prettier - Code formatting tool
- Nodemon - Development utility for auto-restarting the server
colorstack-chapter-website/
βββ frontend/ # React frontend application
β βββ public/ # Static assets
β βββ src/
β β βββ components/ # Reusable UI components
β β βββ pages/ # Page components
β β βββ services/ # API service functions
β β βββ utils/ # Utility functions
β β βββ styles/ # Global styles and Tailwind config
β β βββ App.js # Main application component
β βββ package.json
β βββ README.md
βββ backend/ # Node.js/Express backend API
β βββ src/
β β βββ controllers/ # Request handlers
β β βββ models/ # Database models
β β βββ routes/ # API routes
β β βββ middleware/ # Custom middleware
β β βββ utils/ # Backend utilities
β βββ config/ # Configuration files
β βββ package.json
β βββ server.js # Main server file
βββ docs/ # Project documentation
βββ .gitignore
βββ README.md
βββ LICENSE
Before you begin, ensure you have the following installed on your local machine:
- Node.js (v16.0 or higher) - Download here
- npm (v8.0 or higher) - Comes with Node.js
- MongoDB (v5.0 or higher) - Installation guide
- Git - Installation guide
-
Clone the repository
git clone https://github.com/yourusername/colorstack-chapter-website.git cd colorstack-chapter-website -
Install frontend dependencies
cd frontend npm install cd ..
-
Install backend dependencies
cd backend npm install cd ..
-
Backend Environment Variables
Create a
.envfile in thebackend/directory:NODE_ENV=development PORT=5000 MONGODB_URI=mongodb://localhost:27017/colorstack_grambling JWT_SECRET=your_jwt_secret_key_here JWT_EXPIRE=30d
-
Frontend Environment Variables
Create a
.envfile in thefrontend/directory:REACT_APP_API_URL=http://localhost:5000/api REACT_APP_SITE_NAME=ColorStack Grambling
-
Start the backend server
cd backend npm run devThe API will be available at
http://localhost:5000 -
Start the frontend development server
cd frontend npm startThe website will be available at
http://localhost:3000
- Main Branch: Production-ready code only
- Feature Branches: Create a branch for each feature/fix using the format:
feature/your-name-feature-description - Personal Branches: Use your name as the branch name for ongoing development
- Follow ES6+ JavaScript standards
- Use meaningful variable and function names
- Comment complex logic and functions
- Maintain consistent indentation (2 spaces)
- Run ESLint before committing code
Use conventional commit format:
type(scope): description
Examples:
feat(auth): add user registration functionality
fix(events): resolve date formatting issue
docs(readme): update installation instructions
- Create a feature branch from
main - Make your changes and test thoroughly
- Update documentation if necessary
- Submit a pull request with a clear description
- Wait for code review before merging
Development: http://localhost:5000/api
Production: https://api.colorstackgrambling.org/api
POST /auth/register- User registrationPOST /auth/login- User loginPOST /auth/logout- User logoutGET /auth/profile- Get user profile
GET /events- Get all eventsPOST /events- Create new event (Admin only)GET /events/:id- Get event by IDPUT /events/:id- Update event (Admin only)DELETE /events/:id- Delete event (Admin only)
For detailed API documentation, visit /api/docs when running the development server.
The application is deployed using:
- Frontend: Vercel/Netlify
- Backend: Heroku/Railway
- Database: MongoDB Atlas
# Build frontend for production
cd frontend && npm run build
# Start production server
cd backend && npm startWe welcome contributions from all chapter members! Please follow these steps:
- Fork the repository
- Create a feature branch
git checkout -b feature/your-name-amazing-feature
- Make your changes and commit them
git commit -m 'feat: add amazing feature' - Push to your branch
git push origin feature/your-name-amazing-feature
- Open a Pull Request
Please read our Code of Conduct before contributing.
- Chapter Leaders: Contact chapter leadership for project-related questions
- Technical Issues: Create an issue in this repository
- General Questions: Reach out in the chapter Slack workspace
This project is licensed under the MIT License - see the LICENSE file for details.
Built with β€οΈ by the ColorStack Grambling State University Chapter
Empowering the next generation of diverse technologists