Mapnews is a comprehensive and sophisticated map-based news system built using Angular for the frontend and Express for the backend. The system is a docker swarm consisting of the backend, frontend, and notification services. The swarm configuration features horizontal scaling in our backend in order to meet high concurrency requirements for this application, where we implement load balancing between the websocket server replicas.
In-depth feature and implementation details are discussed in the README.md of their respective sub-directories
Before you begin, ensure that you have the following prerequisites installed:
ℹ️ Docker CLI
- Clone the mapnews repository:
git clone https://github.com/dubstep-warrior/mapnews
- Change to the project directory:
cd mapnews
- Initialize a docker swarm
docker swarm init
- Deploy the docker swarm (Ensure environment variables are replaced with appropiate values)
docker stack deploy --compose-file docker-compose.yml mapnews
- Access the web application from localhost:3000.
Contributions are always welcome! Please follow these steps:
- Fork the project repository. This creates a copy of the project on your account that you can modify without affecting the original project.
- Clone the forked repository to your local machine using a Git client like Git or GitHub Desktop.
- Create a new branch with a descriptive name (e.g.,
new-feature-branch
orbugfix-issue-123
).
git checkout -b new-feature-branch
- Make changes to the project's codebase.
- Commit your changes to your local branch with a clear commit message that explains the changes you've made.
git commit -m 'Implemented new feature.'
- Push your changes to your forked repository on GitHub using the following command
git push origin new-feature-branch
- Create a new pull request to the original project repository. In the pull request, describe the changes you've made and why they're necessary. The project maintainers will review your changes and provide feedback or merge them into the main branch.