Skip to content

Latest commit

 

History

History
104 lines (69 loc) · 4.58 KB

README.md

File metadata and controls

104 lines (69 loc) · 4.58 KB

Project Name: Dev Finds

Overview

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.

Features

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

Screenshots

Screenshot 1

Screenshot 1


Screenshot 2

Screenshot 2


Screenshot 3

Screenshot 3


Screenshot 4

Screenshot 4


Screenshot 5

Screenshot 5


Screenshot 6

Screenshot 5

Technologies Used

Backend Technologies

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

Frontend Technologies

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

Installation

  1. Clone the repository: git clone <repository-url>
  2. Install dependencies: npm install
  3. Configure environment variables: Create a .env file and add necessary environment variables.
  4. Run the application: npm run dev

Getting Started

  1. Sign up for an account on the platform.
  2. Log in with your credentials to access the dashboard.
  3. Capture your work-based experiences by creating posts with text, photos, or videos.
  4. Explore and engage with posts shared by other students.
  5. Enjoy real-time communication with other users through chat functionality.

Contributing

Contributions are welcome! To contribute to the project, follow these steps:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature/your-feature-name).
  3. Make your changes.
  4. Commit your changes (git commit -am 'Add some feature').
  5. Push to the branch (git push origin feature/your-feature-name).
  6. Create a new Pull Request.

Contact

For any inquiries or feedback, please contact