/STEMProlinks

Portfolio app for new grads

Primary LanguageJavaScript


STEMProlinks

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.

Table of Contents

Features

  • 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.

Technology Stack

  • 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)

Installation

To get started with STEMProlinks, follow the steps below:

Prerequisites

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.

Clone the Repository

To clone the repository, run the following command:

git clone https://github.com/Tausi95/STEMProlinks.git
cd STEMProlinks

Backend Configuration

  1. 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
  2. Install Backend Dependencies:

cd backend
npm install
  1. Run Migrations
npx sequelize db:migrate

Frontend Configuration

  1. Install Frontend Dependencies:
cd ../frontend
npm install
  1. Environment Configuration:

    • Create a .env file in the frontend directory with the following values:
    REACT_APP_API_URL=http://localhost:5000

Running the Application

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.

Build for Production

For production deployment, create an optimized build of the application:

npm run build

This will create a build folder with optimized assets for deployment.

Usage

Once the application is running, users can:

  1. Create an Account: Register by providing personal or professional details.
  2. Explore Profiles: Browse and connect with other STEM professionals and students.
  3. Join Events: Participate in events, webinars, and workshops listed on the platform.
  4. Collaborate: Start or join projects to work on innovative solutions in STEM fields.
  5. Access Resources: Utilize a variety of STEM-related resources shared by the community.

Contributing

We welcome contributions! If you'd like to help improve the platform, here’s how you can get started:

Contribution Workflow

  1. Fork the repository on GitHub.
  2. Create a new branch for your feature or bug fix:
    git checkout -b feature-name
  3. Commit your changes:
    git commit -m "Description of feature or fix"
  4. Push to your forked repository:
    git push origin feature-name
  5. Submit a pull request to the main repository.

Make sure to follow the coding guidelines and include relevant tests for new features.

Reporting Issues

If you encounter any issues or bugs, feel free to open an issue on GitHub.

License

This project is licensed under the MIT License. See the LICENSE file for full details.

Contact

For any inquiries or support, feel free to reach out: