Here is a working DEMO that you could visit. Please be responsible enough not to post or exhaust the demo server.
This repository contains a Node.js Express GraphQL API that serves as a backend service for a gossip management application. It provides CRUD (Create, Read, Update, Delete) operations for managing gossips and related data in a MongoDB database.
- Gossip Creation: Users can create gossips to share with others.
- Gossip Browsing: Users can browse and check out gossips created by others.
- Account Creation: Users can create an account to access additional features.
- Registration: Users can register their accounts for personalized experiences.
- Lazy Loading: Utilizes lazy loading to enhance performance by loading components only when needed.
- API Integration: Connects to a backend API, allowing seamless communication for data retrieval and storage.
- Proper Routing: Implements proper routing practices to ensure smooth navigation and bookmarking within the application.
- Observes Code Structure: Follows a structured code organization to enhance readability, maintainability, and scalability.
- Unit Testing: Implementation of unit tests to ensure code reliability and maintainability.
- Notifications: Integrate notifications system to alert users about relevant activities.
- Follow and Unfollow: Implement functionality for users to follow and unfollow each other.
- Node.js version 20.12.1 or higher
- Clone the repository:
git clone https://github.com/diontristen/tsismis-be
- Install dependencies:
npm install
- Create an .env file to your root directory
PORT=5001
MONGO_INITDB_ROOT_USERNAME=root
MONGO_INITDB_ROOT_PASSWORD=JXpd7W>x09
MONGO_INITDB_HOST=localhost
MONGO_INITDB_PORT=27017
JWT_SECRET=Uu8JlGnQ4CWaVjByzgqQV9t4MBkfcP6X
AVATAR_URL=https://api.dicebear.com/8.x/lorelei-neutral/svg
APP_URL=http://localhost:5000
** Note: MongoDB url is translated into this
const MONGODB_URI = `mongodb://${process.env.MONGO_INITDB_ROOT_USERNAME}:${process.env.MONGO_INITDB_ROOT_PASSWORD}@${process.env.MONGO_INITDB_HOST}:${process.env.MONGO_INITDB_PORT}`
mongodb://root:JXpd7W>x09@localhost:27017
- Start the development server:
npx nodemon
##OR##
- Clone the repository
git clone https://github.com/diontristen/tsismis-be
- Navigate to the project directory:
cd tsismis-be
- Build and run the docker container
docker-compose up
- Access the api http://localhost:5001
**Note: Adjust the ports in the Dockerfile and docker-compose.yaml relative to your liking
If you wish to just use the app in dev mode you need a working mongodb service. You can create a separate docker-compose.yml file
version: '3.8'
services:
tsismis_mongodb:
image: mongo:4.4
ports:
- "27019:27017"
environment:
MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME}
MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD}
volumes:
- mongodb_data:/data/db
volumes:
mongodb_data:
And run docker-compose up
- Access the application through the provided URL.
- Sign up for an account or log in if already registered.
- Explore the features to create gossips, browse gossips, and manage your account.
Contributions are welcome! If you'd like to contribute to this project, please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature/improvement
). - Make your changes.
- Commit your changes (
git commit -am 'Add some feature'
). - Push to the branch (
git push origin feature/improvement
). - Create a new Pull Request.
Note: This project is connected with a frontend repository hosted at https://github.com/diontristen/tsismis-fe.