- A modern dating application designed to connect people through common interests, fun features, and a seamless user experience. This app allows users to create profiles, chat with matches, and explore unique ways to interact, such as sharing photos, favorite songs, and hobbies.
- User Profiles: Create and customize your profile with personal details and photos.
- Chat System: Real-time messaging with support for emojis and media sharing.
- Interactive Features: Share your favorite songs, movies, and personal thoughts to connect deeper.
- Responsive Design: Optimized for both desktop and mobile devices.
The frontend is built using modern frameworks and tools to ensure a responsive, interactive, and smooth user experience.
- React: A JavaScript library for building user interfaces.
- React Query (TanStack): For efficient data fetching, caching, and synchronization.
- React Router / React Router DOM: For handling routing and navigation in a single-page application.
- React Hook Form: For form management with validation.
- Tailwind CSS: A utility-first CSS framework for rapid UI development.
- Socket.IO: For real-time communication between users.
- Vite: A fast build tool for optimized React development.
The backend is designed to handle real-time interactions, file uploads, and relational data storage with a focus on scalability.
- Node.js: A JavaScript runtime for building the server-side application.
- Express: A lightweight framework for routing and middleware management.
- Socket.IO: For real-time, bi-directional communication between server and clients.
- PostgreSQL: A relational database for structured data storage.
- Sequelize: An ORM (Object-Relational Mapping) library for database management.
- Multer: For handling file uploads efficiently.
- Amazon S3: For storing and retrieving user-uploaded files and images.
- JWT (JSON Web Tokens): For secure user authentication and session management.
Before you begin, ensure you have the following installed:
- Node.js (v16 or later)
- npm
- PostgreSQL (configured for the backend)
- Git
git clone https://github.com/tonkec/duga_frontend_v2
cd duga_frontend_v2
git clone https://github.com/tonkec/duga_backend
cd duga_backend
cd frontend
npm install
cd backend
npm install
Create .env
files in both the frontend
and backend
directories based on the .env.example
files provided.
APP_KEY=somekey
APP_PORT=8080
APP_URL=http://localhost
AWS_S3_ACCESS_KEY_ID=somekey
AWS_S3_BUCKET_NAME=duga
AWS_S3_SECRET_ACCESS_KEY=somekey
DB_DATABASE=somekey
DB_HOST=localhost
DB_PASSWORD=somekey
DB_USER=asomekey
PGSSLMODE=disable
DATABASE_URL=somekey
SENDGRID_API_KEY=somekey
URI=somekey
APP_FRONTEND_PORT=5173
NODE_ENV=development
VITE_BASE_URL=http://localhost:8080
-
Start the Database: Ensure your PostgreSQL server is running and properly configured.
-
Run Migrations:
npx sequelize-cli db:migrate
-
Start the Backend Server:
npm run dev
The backend will be available at
http://localhost:8080
.
-
Start the Frontend:
npm run dev
The frontend will be available at
http://localhost:5173
.
- Open the application in your browser.
- Register a new account and set up your profile.
- Browse profiles, send messages, and enjoy connecting with new people!
We welcome contributions! Follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature/your-feature-name
). - Commit your changes (
git commit -m 'Add your feature'
). - Push to the branch (
git push origin feature/your-feature-name
). - Open a Pull Request.
This project is licensed under the MIT License. See the LICENSE file for details.