Welcome to the DevFinds' Work-Based Experience Sharing Platform! This platform is designed to facilitate programming students in capturing their work-based experiences and sharing them with other students. Users can share their learning experiences through text, photos, or videos, making it a versatile platform for knowledge exchange and collaboration.
- User Authentication: Users can sign up, log in, and securely authenticate using JWT (JSON Web Tokens).
- Real-time Communication: Integration of Socket.io enables real-time communication between users, fostering instant interaction and collaboration.
- Database Management: MongoDB is used as the database, with the Mongoose library for efficient data modeling and management.
- Cookie Parsing: Cookie parsing is implemented for managing user sessions securely.
- Documentation: The project is thoroughly documented to aid developers in understanding and contributing to the codebase.
- Express.js: Node.js framework for building efficient and scalable web applications.
- Node.js: Server-side JavaScript runtime environment for executing JavaScript code.
- JWT (JSON Web Tokens): Secure method for transmitting information between parties as JSON objects.
- Socket.io: Library for real-time web applications, facilitating bidirectional communication between web clients and servers.
- MongoDB: NoSQL database used for storing and managing application data.
- Mongoose: MongoDB object modeling tool designed to work in an asynchronous environment.
- Cookie Parser: Middleware for parsing HTTP request cookies, facilitating session management.
- Firebase: Platform offering various services like real-time database, authentication, hosting, and more, facilitating rapid development of web and mobile applications.
- Google OAuth: Authentication mechanism allowing users to log in to applications using their Google account credentials.
- REST APIs: Architectural style for designing networked applications, enabling interaction between client and server through stateless communication over HTTP.
- React: JavaScript library for building user interfaces, allowing for the creation of dynamic and interactive UI components.
- Material-UI (MUI): React component library implementing Google's Material Design, providing pre-designed UI components for building visually appealing and consistent user interfaces.
- Tailwind CSS: Utility-first CSS framework for building custom designs quickly, offering a flexible and low-level utility approach for styling web applications.
- JavaScript: Programming language used for both client-side and server-side development, offering versatility and compatibility across different environments.
- Axios: Promise-based HTTP client for making AJAX requests from the browser or Node.js, providing an easy-to-use interface for interacting with REST APIs.
- Clone the repository:
git clone <repository-url>
- Install dependencies:
npm install
- Configure environment variables: Create a
.env
file and add necessary environment variables. - Run the application:
npm run dev
- Sign up for an account on the platform.
- Log in with your credentials to access the dashboard.
- Capture your work-based experiences by creating posts with text, photos, or videos.
- Explore and engage with posts shared by other students.
- Enjoy real-time communication with other users through chat functionality.
Contributions are welcome! To contribute to the project, follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature/your-feature-name
). - Make your changes.
- Commit your changes (
git commit -am 'Add some feature'
). - Push to the branch (
git push origin feature/your-feature-name
). - Create a new Pull Request.
For any inquiries or feedback, please contact