Houmti is a social media network for local communities, designed to connect people within the same city or neighborhood. Users can interact with their neighbors, share posts, organize events, offer services, and more, fostering a sense of local community online.
This project was developed as the final project for my bachelor's degree, showcasing my skills in full-stack web development and UI/UX design.
- Signup/Login: Users can create accounts and log in.
- Profile Management: Update personal information, upload profile pictures, and change the city/neighborhood they follow.
- Password Management: Users can change their passwords at any time.
- Users can choose their city/neighborhood to see and interact with content relevant to their area.
- Normal Posts: Simple posts with a title and text content.
- Posts with Images: Posts that include images alongside the text.
- Events: Posts that include a title, description, date, and place.
- Polls: Posts with a title, description, and poll choices for voting.
- Services: Posts offering services with a title, description, and phone number.
- Likes and Comments: Engage with all types of posts.
- Event Participation: Click "Participate" to join an event.
- Poll Voting: Cast a vote on polls.
- Service Demands: Click "Demand" to request a service.
- Users receive notifications when others interact with their content (e.g., like, comment, vote, demand service).
- Change personal info (e.g., firstname, lastname) or switch city/neighborhood.
- Update passwords and profile pictures.
- API routes for admin functionalities are implemented but currently lack a user interface.
- Responsive design ensures the app works seamlessly on all screen sizes.
- Light/Dark mode is available for better user experience.
Languages:
- JavaScript (Frontend & Backend)
Frontend:
- React
- Redux Toolkit
- Chakra UI
- Axios
Backend:
- Node.js
- Express.js
Database:
- MongoDB (with Mongoose)
Ensure you have the following installed:
- Node.js
- npm
- MongoDB (for local database)
- Clone the repository:
git clone https://github.com/lyes-klh/houmti.git
- Navigate to the project directory:
cd houmti - Install all dependencies:
npm run install:all
- Create
.envfiles in both theclientandserverdirectories.
DB_LOCAL=mongodb://localhost:27017
PORT=4000
JWT_KEY=key123
NODE_ENV=development
EMAIL_HOST=
EMAIL_PORT=
EMAIL_USER=
EMAIL_PASSWORD=
REACT_APP_API=http://localhost:4000/api/v1
REACT_APP_BACKEND=http://localhost:4000
- Start the application:
npm start
- Run the client only:
npm run start:client
- Run the server only:
npm run start:server
- Install dependencies manually:
Navigate to each folder (
clientandserver) and runnpm install.
This project is licensed under the MIT License. See the LICENSE file for more details.
Feel free to reach out with feedback or suggestions, and thank you for checking out Houmti!
