STEMProlinks is an innovative web application designed to foster connections among professionals, students, and enthusiasts in STEM (Science, Technology, Engineering, and Mathematics) fields. Built using React, it enables users to network, collaborate, share resources, and participate in STEM-related events.
- User Profiles: Create and manage personal or professional profiles, highlighting your expertise and interests.
- Networking: Connect with peers, mentors, and professionals from various STEM disciplines.
- Resource Sharing: Share and access a library of resources, including articles, papers, and learning materials.
- Project Collaboration: Collaborate on STEM-related projects and work in teams to solve real-world problems.
- Event Management: Organize, promote, and participate in STEM-related events such as workshops, webinars, and hackathons.
- Mentorship Opportunities: Connect students or early-career professionals with mentors in specific fields.
- Dynamic Newsfeed: Stay updated with the latest developments in STEM through personalized news and articles.
- Frontend:
- React (JavaScript)
- Axios for API calls
- CSS for styling
- Backend:
- Node.js (Express)
- Sequelize (ORM) for database management
- MySQL for relational data storage
- Deployment:
- Ubuntu server for backend hosting
- NGINX for reverse proxy
- GitHub for version control
- Docker for containerized deployment (optional)
- Security:
- JWT-based authentication
- SSL/TLS encryption (for production)
To get started with STEMProlinks, follow the steps below:
Before proceeding, ensure you have the following installed:
- Node.js: Download Node.js for your system.
- npm (Node Package Manager) or Yarn: npm comes with Node.js; alternatively, you can use Yarn here.
- MySQL: Install and configure MySQL for the backend database.
- Git: Make sure Git is installed for version control. Download Git.
To clone the repository, run the following command:
git clone https://github.com/Tausi95/STEMProlinks.git
cd STEMProlinks
-
MySQL Database: Set up a MySQL database.
- Create a
.env
file at the root of the project and add your MySQL database credentials as follows:
DB_NAME=stemprolinks_db DB_USER=root DB_PASS=yourpassword DB_HOST=localhost DB_PORT=3306
- Create a
-
Install Backend Dependencies:
cd backend
npm install
- Run Migrations
npx sequelize db:migrate
- Install Frontend Dependencies:
cd ../frontend
npm install
-
Environment Configuration:
- Create a
.env
file in the frontend directory with the following values:
REACT_APP_API_URL=http://localhost:5000
- Create a
1.Start the Backend:
cd backend
npm start
By default, the backend runs on http://localhost:5000
.
2.*Start the Frontend:
cd ../frontend
npm start
The frontend will be accessible at http://localhost:3000
.
For production deployment, create an optimized build of the application:
npm run build
This will create a build folder with optimized assets for deployment.
Once the application is running, users can:
- Create an Account: Register by providing personal or professional details.
- Explore Profiles: Browse and connect with other STEM professionals and students.
- Join Events: Participate in events, webinars, and workshops listed on the platform.
- Collaborate: Start or join projects to work on innovative solutions in STEM fields.
- Access Resources: Utilize a variety of STEM-related resources shared by the community.
We welcome contributions! If you'd like to help improve the platform, here’s how you can get started:
- Fork the repository on GitHub.
- Create a new branch for your feature or bug fix:
git checkout -b feature-name
- Commit your changes:
git commit -m "Description of feature or fix"
- Push to your forked repository:
git push origin feature-name
- Submit a pull request to the main repository.
Make sure to follow the coding guidelines and include relevant tests for new features.
If you encounter any issues or bugs, feel free to open an issue on GitHub.
This project is licensed under the MIT License. See the LICENSE file for full details.
For any inquiries or support, feel free to reach out:
- Email: tausipro@gmail.com
- GitHub: Tausi95