- The project must to run as app ( mac, windows and linux through nwjs ) and website aswell. So it must be accessible through a URL on browser or a downloadeable app.
- We need a radio player which will not play using streams, the player must to download an encrypted MP3 file, save it on the user's pc, and play it without the need of internet connection ( once downloaded ofcourse ).
- The freelancer is in charge of creating a encryption method, to encrypt and decrypt mp3 files. The encrypt method must to be delivered along with the application, and the decrypt method must be used to play the music. ( Since the musics will be downloaded on user's pc, we want to avoid it to be played without our player )
- Once the system detects internet connection, it must to sync all playlists/songs as long as validate whether the account is expired or not. If the account is expired, it must redirect the user to a login screen.
The playlists concept will be kept. And the playlists must also be saved on user's pc once downloaded, in order to be used offline. [ One playlists contains many musics ]
There might be commercial spots between the musics on the playlist. ( ie: After 3 musics, play a commercial spot )
There are 3 kinds of spots: Commercial Spots, Custom Spots and Company Spot.
Every account has only 1 company spot, which promote the business with it's name. ( ie "Fit Gym - The best place to workout" );
Commercial Spots are available to all users. Custom Spots are requested by the user.. and once the spot is ready, it must to be downloaded and available to user to switch if he will use it or not in his playlist. If a custom spot is in use;
The user must be able to choose which spot is going to be played or not, as long as the number of musics between a commercial/custom spot be played [ between 3 ~ 10 musics ].
The company spot always must be played before a commercial spot.
The application need to have an auto update system implemented on NWJS:
[login to view URL]
- Dual channel needed to play 2 songs at same time. This will be used when the current song being played, and there are 5 secs missing until the next song, the next song must to start being played, and it's volume must to be increased slowly from 0 to 100%, giving a fade effect to the end user.
- The project must to have a login system which will expire only when the account expire ( if expire ).
The expiration date must be checked even offline.
All the backend will be provided by a dedicated developer which will be available to communicate all the time, so the freelancer must to work only on the front end side.
The backend will be coded along with the front end development.
10% at the beggining of the project.
50% when it reachs 50%
100% when it reachs 100%
First milestone will be released when project reachs 100%
And the rest only when the deploy is completed.