For this social network project, I developed the user interface with React and Vite.js, which allowed me to explore new front-end development techniques and improve my skills:
- Advanced state management: First implementation of Redux and Zustand to manage the application's global state, user sessions, and real-time interactions
- Interactive social feed: Creation of a dynamic feed allowing users to see their friends' posts
- Like system: Implementation of social interactions allowing users to express interest in posts
- Multimedia integration: Support for sharing photos and integrating YouTube videos via links
- Comment system: Ability to interact with posts through comments
- Relationship management: Interface to manage friend requests, view friend lists, and suggest new connections
- Responsive design: Adaptation of the interface for an optimal experience on all devices
The most challenging aspect of front-end development was implementing an efficient state management system with Redux and Zustand to maintain consistency of user data throughout the application.
For the server part of this social network, I used Express.js, which was my first in-depth experience with this framework. This development allowed me to explore:
- REST architecture: Design of a complete API to manage users, posts, and interactions
- Authentication: Implementation of a secure system with JWT to manage user sessions
- Image storage: Implementation of a system to upload and serve profile and post images
- Data validation: Control of user inputs to ensure data integrity
- Query optimization: Efficient structure of routes and controllers to minimize response times
- Relationship management: Modeling connections between users (friends, subscriptions)
- Real-time notifications: System to alert users of new interactions (likes, comments, friend requests)
Backend development with Express was particularly enriching, allowing me to understand how to structure a performant and secure API for a social application.
Main Features
This social network includes a comprehensive set of social features:
- Multimedia posts: Sharing of text, photos, and YouTube videos
- Like system: Ability to like posts and see who has liked them
- Comments: Discussion under posts with notifications
- Content sharing: Option to repost content from other users
- Friendship system: Sending and managing friend requests
- Connection suggestions: Algorithm proposing relevant new contacts
- User search: Search function to find new friends
- Customizable profiles: Profile pages with photos, information, and activity history
- Personalized feed: Intelligent display of relevant posts for the user
- Notifications: Alerts for new interactions and connections
- Dark/light mode: Interface customization option
- Instant messaging: Exchange of private messages between users
This project allowed me to deepen my knowledge in full-stack development, particularly in client-side state management with Redux and Zustand, as well as in creating robust APIs with Express. I learned to handle challenges specific to social applications, such as managing relationships between users, media processing, and performance optimization for a smooth user experience.