The official full-stack web platform for the IEEE Student Branch at El shrouk academy.
This repository contains the source code for our student branch website. It allows the board to manage events, register members, and showcase our gallery and blogs.
The project is built as a Monorepo, meaning both the Frontend (Client) and Backend (Server) are contained in this single repository for easier maintenance.
Frontend (Client):
- React (Vite) - UI Library
- Tailwind CSS (Recommended) or CSS Modules - Styling
- Axios - API Integration
- React Router - Navigation
Backend (Server):
- Node.js & Express - Server Runtime
- MongoDB & Mongoose - Database
- JWT - Authentication
- Multer - Image Uploads (for events/members)
Follow these steps to set up the project locally.
Ensure you have the following installed:
- Node.js (v16 or higher)
- Git
- MongoDB Compass (if running DB locally)
Clone the repository and install dependencies for both root, client, and server.
# Clone the repo
git clone [https://github.com/your-username/ieee-website.git](https://github.com/your-username/ieee-website.git)
cd ieee-website
# Install Root dependencies (for concurrently)
npm install
# Install Server dependencies
cd server
npm install
# Install Client dependencies
cd ../client
npm install
### 3. Environment
Create a `.env` file in the `server` folder with any required secrets. Example `.env`:
MONGO_URI=mongodb://localhost:27017/ieee PORT=5000 JWT_SECRET=your_jwt_secret
Keep `.env` out of source control — a root `.gitignore` has been added to ignore `.env` files.
### 4. Run (development)
From the repository root you can run both client and server concurrently (root `dev` uses `concurrently`):
```bash
# from repo root
npm run dev
This runs the server (nodemon) and the Vite client. By default the client proxies /api to http://localhost:5000 in development.
# run server only (from /server)
npm run dev
# run client only (from /client)
npm run dev- Ensure dependencies are installed in root,
server, andclient. - If the client reports CORS issues in development, confirm
client/vite.config.jscontains a proxy for/apitohttp://localhost:5000. - If the server doesn't start, check that
PORTisn't already in use and that.envvalues are loaded.
If you'd like, I can keep updating this README live as you change scripts, add env variables, or modify setup steps — tell me how frequently you'd like updates.
We maintain onboarding and technical docs in the docs/ folder. New team members should read docs/ONBOARDING.md first.
docs/ONBOARDING.md— Quick start and first tasksdocs/ARCHITECTURE.md— High-level architecture and folder layoutdocs/API.md— API documentation templatedocs/CONTRIBUTING.md— PR rules and checklistdocs/STYLEGUIDE.md— Coding conventionsdocs/DEPLOYMENT.md— Deployment & env variables