Opportunity Calendar is the one-stop place to refer important opportunities available in tech-space like newly posted jobs, internships, hackathons, tech-conferences, scholarships etc.
The frontend of the same project can be found here
- Install
- Introduction
- Technology Stack
- Documentation
- Bugs and Feature Requests
- Contributing
- Copyright and license
# clone the repository to your local machine
$ git clone https://github.com/<YOUR-GITHUB-USERNAME>/Opportunity-Calendar-Backend.git
# navigate to the project's directory
$ cd Opportunity-Calendar-Backend
# install all the relevant (dev) dependencies using npm
$ npm install
# Copy .env.example to .env
$ It is recommended to install [MongoDB Compass](https://www.mongodb.com/try/download/compass) to visualize data in mongodb
# Start application
$ npm run start:dev
# Visit http://localhost:3030/ in your browser
- Full Time Job Opportunties
- Internship Opportunties
- Scholarships
- Tech-Conferences
- Coding Competitions
- Hackathons
- Server Enviornment - NodeJS
- Framework - ExpressJS
- Database - MongoDB
- Cloud database service - MongoDB Atlas
We will structure our application using the controller, service, and, manager pattern so our app will be broken into the managers, services, and controllers. The Manager-Service-Controller
pattern breaks up the business layer of the app into three distinct layers:
- The
manager class
handles getting data into and out of our data store. A manager is used between the service layer and the model layer. For example, in the opportunityManager you would create methods that write/read a opportunity to and from the database. - The
service class
calls the manager class and can combine their data to form new, more complex business objects. It is an abstraction between the controller and the manager. - A
controller
contains very little logic and is used to make calls to services.
Documenting API using JSDoc and Swagger
Have a bug or a feature request? Please first read the issue guidelines and search for existing and closed issues. If your problem or idea is not addressed yet, please open a new issue.
We want contributing to Opportunity Calendar to be enjoyable and educational for everyone. We would love to have your contributions. To get started have a look at our documentation on contributing.
Code released under the MIT License.