A web service for shortening URLs. Takes a long URL the returns a shorten version to the client, when the short URL is clicked the client application is directed to the original URL.
- User can submit and receive a shorter version of a URL.
- Created URL can be customized.
- URL should be short and readable.
- URL can be created with expiration time.
- Advanced analytics on URL interactions ie. clicks.
- Generate QR code for the shorter URL.
- Security, the web service shoud be secured.
- Scalable, the web service should at scale.
- Latency, low latency when serving client request.
- Peformance, the service should offer high peformance to users.
- MongoDB - MongoDB is a source-available cross-platform document-oriented database program. Classified as a NoSQL database program, MongoDB uses JSON-like documents with optional schemas. MongoDB is developed by MongoDB Inc.
- Redis Cache - Redis is an in-memory data structure store, used as a distributed, in-memory keyβvalue database, cache and message broker, with optional durability.
- Go - Go is a statically typed, compiled programming language designed at Google by Robert Griesemer, Rob Pike, and Ken Thompson.
- Docker - Docker is a set of platform as a service products that use OS-level virtualization to deliver software in packages called containers. Containers are isolated from one another and bundle their own software, libraries and configuration files; they can communicate with each other through well-defined channels.
- Clone the project from github.
git clone https://github.com/evansopilo/MICRO-URL.git
- Download repository
- Uncompress to your desired directory
- In the root this repository you will find a file named
.env.example
- Create a new file by copying and pasting the file and then renaming it to just
.env
- The file
.env
is already ignored, so you never commit your credentials. - Change the values of the file to your environment (development or production)
- Upload the
.env
to your environment server(development or production) - If you use the postman collection to try the endpoints, change value of the variable
server
on your environment to the url of your server, for development mode use http://localhost:8080
Feel free to report any bugs or improvements. Pull requests are always welcome.
This project is open-sourced software licensed under the MIT License. See the LICENSE file for more information.