Portfolio is a project created with nodeJS technology, MongoDB and several external APIs, all built with JavaScript. This web-app Portfolio may work not only as a Curriculum Vitae but also as a free space for his owner to upload and display their own content, integrating several social networks.
This project has been built and uses technologies and third party npm libraries such as
- EJS
- Express
- FS (built-in nodeJS)
- MongoDB
- Mongoose
Besides npm and nodeJS, APIs such as:
- Instagram via Instafeed
- Facebook via Facebook SDK
LastFM
To install all dependencies, it is mandatory to run the following command inside portfolio folder containing package.json
$ npm install
-
This project has a self signed SSL certificate until 18th of June 2019 therefore, to access this webapp, it is mandatory to type the following address (https://localhost:3000) after running the server.
-
MongoDB has been published on Cloud. It might be required using VPN or you can simply switch to local server by commenting line 11 and uncommenting line 12 of server.js file
This nodeJS app can be ran through the following commands, depending on its purpose:
- Start App:
$ node app
- Dev Mode:
$ npm run dev
By running in Dev Mode, the server will refresh itself every time changes in code are saved
For debugging purposes, and due to some APIs, this project has a self signed SSL certificate, therefore, it is MANDATORY type the following address https://localhost:3000
For CRUD operations, Dashboard can be accessed by entering navigating to https://localhost:3000 with the following credentials
- Username: miguelsolans
- Password: NotTellingYou
User permissions will be created, eventually
- June the 7th, 2019
- Sort usings in EJS and HTML files
- Rich Text editing Library
- June the 9th, 2019
- File structure re-organized
- Rich Text support when adding new content (editing currently unsupported)
- June the 13th, 2019
- New Tags System
- Fixed bug where Instafeed library couldn't be imported
Some features to be implemented in the future
ID | Feature | Priority | Status |
---|---|---|---|
1 | Dashboard Notifications | Medium | To Develop |
2 | Allow users to create own portfolios | High | To Develop |
3 | Portfolio Themes | Medium | To Develop after 2 |
4* | Export to Curriculum Vitae | Low | To Develop |
5 | Custom CSS stylesheet | Medium | Under Development |
* More fields need to be created on database
I've put my sweat and tears into this project and I will continue doing so because I found this project quite empowering and fun.
If you find it useful or interesting, please do not replicate this idea. Although, you're free to contribute on this Github Repository. Every bit is appreciated ;-) !
Copyright (c) 2019, Miguel Solans